形式一:If(条件) 如果成立则执行这一步;
形式二:If(条件) 如果成立则执行这一步;else 否则执行这一步;
形式三:if语句的嵌套
1.if一直嵌套的形式:
if(表达式1)
if(表达式2)
语句1;
else
语句2;
其中的else究竟是与哪一个if配对呢?else与第二个if配对。C语言规定,如果没有花括号else 总是与它前面最近的if配对,因此对上述例子应按后一种情况理解。所以我建议不管你是单行表达式还是多行表达式都用花括号把你的表达式括起来即:{表达式}
注意:一般代码都是自上而下按顺序运行的。其次if语句默认关联控制下一个语句,所以说,如果只需要控制一个语句的话,花括号可以省略。如果你要控制多个语句,则需要用花括号{},作为一个语句块,也就相当于一个语句。花括号的作用是防止后面else找不到对应匹配的if,只要你能保证else能找到你想对应的if,就可以自己酌情添加。
2.else if的形式:
if(表达式1)语句1;
else if(表达式2)语句2;
else if(表达式3)语句3;
else 语句4;
表达的意思为:如果不满足表达式1的情况下,判断满不满足表达式2,如果不满足表达式2的情况下,判断满不满足表达式3,如果也不满足表达式3(i.e以上都不满足)则执行语句4.(注:复合语句要用花括号括起来别忘了哦!)
如果你不加花括号就会提示:
又例:
f内循环这个for画绿线的这里可以不用花括号括起来,是因为for控制if整个语句,else那部分你不要以为就是第二个语句了,第8行和第9行是一个语句块,相当于一个语句。
需要注意的是:在if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。
例如:
if(a=5) 语句;
if(b) 语句;
但是这种赋值表达式形式或者没有在C语言中没有意义的条件语句的语义:表达式的值永远为真,因为你在if后面表达式设置的不是条件表达式。就是说它不会执行else的语句。重点,赋值表达式!!赋值表达式!!赋值表达式!!别和关系表达式中的关系运算符(<,>,<=,>=,==)中的==搞混了。
e.g:
# include <stdio.h>
# include <math.h>
int main()
{
int a, b;
printf("请输入两个整数,将进行是否相等的判别\n");
scanf("%d,%d", &a, &b);
if (a=b) {
printf("a 和b是相等的");
} else {
printf("a和b不相等");
}
return 0;
}
这段源程序输出来结果永远都是:“a 和b是相等的”这句话。.
e.g:if(0<=a<100)printf("b=8"); 0<=a<100在C语言中没有实际意义,逻辑永远是真。
e.g:if(a>b>c)这个关系条件表达式也是没问题的,因为运算符同等级,从左至右依次比较。
当你修改了一段代码,记得重新编译,不然没有效果.