c语言中if和else为什么没有分号?

   更新日期:2024.04.27

因为if else没结束,要么去掉分号,要么给他加上{ }。

1、先说结论:说明你的else是独立的。

2、出错原理:c语言里,有if不一定有else,但是有else一定要有相对应的if。

3、解决方法:这种情况你往前推一下,所有的else能不能跟相应的if对应,很容易就找到了。

4、良好习惯:虽然c语言不要求通过tab或者space来区分上下级关系,但是要养成良好书写习惯,比如说if后的程序段要空一个tab,这样出错的可能性小,而且容易排查问题。

扩展资料:

在同一个 if 结构中可以有多个 elseif 语句。第一个表达式值为 TRUE 的 elseif 语句(如果有的话)将会执行。在 php 中,也可以写成“else if”(两个单词),它和“elseif”(一个单词)的行为完全一样。句法分析的含义有少许区别(如果你熟悉 C 语言的话,这是同样的行为),但是底线是两者会产生完全一样的行为。

elseif 的语句仅在之前的 if 或 elseif 的表达式值为 FALSE,而当前的 elseif 表达式值为 TRUE 时执行。

参考资料来源:百度百科-else if



在 C 语言中,if 和 else 是语句而不是表达式,它们的语法不需要分号作为结尾。
语句(statement)是 C 语言中的基本执行单位,语句可以是一个表达式、控制语句、循环语句或函数调用等,每个语句以分号作为结尾。而 if 和 else 是控制语句,它们控制程序的流程,它们本身就是语句,所以不需要分号作为结尾。
需要注意的是,if 和 else 的后面跟的是语句(statement),如果这些语句包含多个子语句(比如 if 语句嵌套),则需要使用花括号将其括起来,这些子语句的结尾需要使用分号作为结尾。例如:
arduinoCopy codeif (condition) { // 如果条件成立,则执行这个语句块
statement1;
statement2; }
else { // 如果条件不成立,则执行这个语句块
statement3;
statement4; }

在这个示例中,if 和 else 后面跟的是一个语句块,语句块中包含了多个子语句,每个子语句以分号作为结尾。

  • 18395748360 :c程序设计,请问为什么提示else没有if与之匹配呢?
    荆叔肥4165 :答:因为你没有使用大括号{}将if和else之间的语句括起来。
  • 18395748360 :C语言问题为什么if和else没有发挥作用?
    荆叔肥4165 :答:第22行for语句内部写的有问题:第一次进入for循环就会直接执行break退出for循环。把if和else对齐并加上{},并按层级用缩进。这样代码看起来才会一目了然,便于阅读或排错。如下:if(...){ } else { } ...
  • 18395748360 :if 中包含if 和else 为什么没有花课号?
    荆叔肥4165 :答:如果只包含一条语句,就可以省略花括号。这里的一条语句指的是只有一个入口。所以条件、循环语句,不论嵌套多少都只有一个入口。
  • 18395748360 :下面c语言程序不能进行if-else语句的原因
    荆叔肥4165 :答:X是float类型,不能与字符型进行比较,或者说:if(此处的内容永远为假),所以不会运行if后的代码;else则不然,if不满足,一定会运行else,所以else内容一直被运行。
  • 18395748360 :为什么这段if-else语句的条件没有生效?无论输入什么输出都是1_百度知 ...
    荆叔肥4165 :答:语法错误!您也够懒,大括号都懒得加,if,else语句后如果只有一句执行语句,可以不加 { },多于一句必须要加 { },个何况您循环嵌套了!还是不要偷懒,改写就写吧.
  • 18395748360 :c/c++问题else if 没有配对的if是为什么
    荆叔肥4165 :答:else printf("没有后面的字母");return 0;} {}里面是一个语句块,是if条件判断的执行的命令 如果if后面没有{},则因条件成立执行的命令只有if下面一句。而你if与else之间有两句。printf("%c%c",b,c);不止在if成立...
  • 18395748360 :C语言中为什么有的if多分支语句结尾没有else?
    荆叔肥4165 :答:在 C 语言中,if 多分支语句的结尾可以没有 else 分支。这是因为 if 语句的语法结构是这样的:if (expression) { statement1;} else { statement2;} 其中,else 分支是可选的。如果添加了 else 分支,则当表达式的...
  • 18395748360 :C++为什么总是提示没有if匹配的非法else
    荆叔肥4165 :答:if和else没有正确配对,导致这样的错误。还有第二个if else 后面的分号应该去掉,不然就会逻辑错误。
  • 18395748360 :c语言if和else不匹配问题
    荆叔肥4165 :答:if(x+y>z&&x+z>y&&y+z>x){ s=0.50*sinA*x*y;printf("三角形面积为%5.2f",s);putchar('\n');}//你没有把它们作为一个整体,所以后面的else检测不到前面的if else printf("不符合三角形成立条件\n")...
  • 18395748360 :为什么C语言中的else总是无效?
    荆叔肥4165 :答:下面的else与第二个if配对,第二个if无效就是else配对对象无效,else自然就跟着无效了。那么c=2就没有受到任何改变,原样输出。这道题,虽然没有加括号括住下面的内容,但是最后因为if的性质,产生了连环无效,实际上与加...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网