c语言 if与 if else的区别是什么

   更新日期:2024.05.12
1)if()
{
if()
} //这种是嵌套的从属关系,只有满足第一个if,才会开始判断if里面的第二个if。

2)if(){}
else if (){}
else{}

还有if(){}
else{}

这些是并列关系,比如先判断if()的条件,如果不满足,则判断else if()里的条件。如果所有if()(包括else if,下同)的条件都不满足时,则执行else里面的操作。
else可以省略,如果else省略时,当所有if()都不满足的时候,则无操作,继续if()代码块后的程序。
例如我写过的一个代码:
if (BMI<18.5) //1如果变量BMI小于18.5,则输出Category = Underweight
printf("Category = Underweight\n");
else if (BMI>=18.5&&BMI<25) //2如果变量BMI大于等于18.5,且小于25
printf("Category = Normalweight\n",BMI);//则输出Category = Normalweight
else if (BMI>=25&&BMI<30) //3如果变量BMI大于等于25,且小于30 printf("Category = Overweight\n",BMI); //则输出Category = Overweight\
else //其他情况,即上面所有if没包含的情况,如BMI=35时
printf("Category = Obese\n",BMI);//则输出Category = Obese

希望楼主能看懂~

C语言支持两种选择语句:if语句和switch语句。这些语句允许你只有在程序运行时才能。知道其状态的情况下,控制程序的执行过程。首先看一下if语句的用法:
if语句:
if语句是c语言中的条件分支语句。它能将程序的执行路径分为两条。if语句的完整格式如下:
if (condition) statement1;;
else statement2;
其中,if和else的对象都是单个语句(statement),也可以是程序块。条件condition可以是任何返回布尔值的表达式。else子句是可选的。
if语句的执行过程如下:如果条件为真,就执行if的对象(statement1);否则,执行else的对象(statement2)。任何时候两条语句都不可能同时执行。考虑下面的例子:
int a,b;
if(a < b) a = 0;
else b = 0;
本例中,如果a小于b,那么a被赋值为0;否则,b被赋值为0。任何情况下都不可能使a
和b都被赋值为0。
记住,直接跟在if 或else语句后的语句只能有一句。如果你想包含更多的语句,你需
要建一个程序块,如下面的例子:
int bytesAvailable;
if (bytesAvailable > 0) {
ProcessData();
bytesAvailable -= n;
} else
waitForMoreData();
这里,如果变量bytesAvailable 大于0,则if块内的所有语句都会执行。
嵌套 if 语句
嵌套(nested)if语句是指该if语句为另一个if或者else语句的对象。在编程时经常要用到嵌套if语句。当你使用嵌套if语句时,需记住的要点就是:一个else语句总是对应着和它同一个块中的最近的if语句,而且该if语句没有与其他else语句相关联。下面是一个例子:
if(i == 10) {
if(j < 20) a = b;
if(k > 100) c = d; // this if is
else a = c; // associated with this else
}
else a = d; // this else refers to if(i == 10)
如注释所示,最后一个else语句没有与if(j <20)相对应,因为它们不在同一个块(尽
管if(j <20)语句是没有与else配对最近的if语句)。最后一个else语句对应着if(i==10)。
内部的else语句对应着if(k>100),因为它是同一个块中最近的if语句。
if-else-if 阶梯
基于嵌套if语句的通用编程结构被称为 if-else-if 阶梯。它的语法如下:
if(condition)
statement;
else if(condition)
statement;
else if(condition)
statement;
else
statement;
条件表达式从上到下被求值。一旦找到为真的条件,就执行与它关联的语句,该阶梯的其他部分就被忽略了。如果所有的条件都不为真,则执行最后的else语句。最后的else语句经常被作为默认的条件,即如果所有其他条件测试失败,就执行最后的else语句。如果没有最后的else语句,而且所有其他的条件都失败,那程序就不做任何动作。
. 下面的程序通过使用if-else-if阶梯来确定某个月是什么季节。
// Demonstrate if-else-if statements.
main() {
int month = 4; // April
if (month == 12 || month == 1 || month == 2)
printf ( "Winter");
else if (month == 3 || month == 4 || month == 5)
printf ("Spring");
else if (month == 6 || month == 7 || month == 8)
printf ( "Summer");
else if (month == 9 || month == 10 || month == 11)
printf ("Autumn");
else
printf ( "Bogus Month");
}
该程序产生如下输出:
Spring.
试验这个程序。你将看到,不管你给month什么值,
该阶梯中有而且只有一个语句执行。

你要问的主要意思应该是if 与else if的区别吧?
第一组是条件嵌套,例如:
if 中午吃饭
if 没人请吃
自己出钱吃

第二组是条件有多种,比单纯的if 和else 成对出现的2种条件多。例如:
if 中午吃饭花费在100元以内
else if 中午吃饭花费在100-200元以内
else 中午吃饭超过200元的预算
第三组,if 与else成对出现,说明条件选项只有2个,例如:

if 中午吃饭
吃XXX
else(意思是中午不吃饭,因为吃与不吃只有两种情况)
加班

两个连续的if语句,顺序执行,第一个if判断不影响第二个if的判断,比如有:

if(0)
printf("0");
if(1)
printf("1");

你可以修改第一个if语句中的判断条件,查看第二个if的执行结果,第二个if执行不受第一个的影响。

对于if-else if-else,是互相影响的,比如:

if(0)
printf("0");
else if(1)
printf("1");
else
printf("else");

你可以修改if(0)的条件,你会发现,如果第一个if的判断条件为真,那么第二个if就不会进行判断,这里表现为不会输出1,而else分支只有当两个if均不成立时才会执行,其实if-else if-else中间可以有很多分支:
if(exp1)
....
else if(exp2)
...
else if(exp3)
...
...
...
else if(expn)
...
else
...

程序顺序检查if判断条件中的值,当遇到第一个成功的判断条件时,执行该分支,并且跳出整个判断,下面的判断不再执行,如果你学会了switch语句,会发现switch语句可以部分取代if-else if-else语句,其结构是一样的,关于if-else语句,其实是if-else if-else的简化版,当判断条件成功的时候执行if和else之间的语句,否则执行else后面的语句。

if 如果的意思

如果条件成立,那么怎么样
否则,又怎么样
比如说
if(a>b)
printf("a>b");
else
printf("b>a");
如果a>b,那么就输出a>b
否则就输出b>a
但实际上,并不是每个如果都有否则
比如说你要找人聊天,就需要双击他的头像,然后就会打开一个聊天窗口
如果你双击了,就打开聊天窗口,
否则呢??啥都不做
if(双击)
printf("打开一个聊天窗口");
else ;
你会发现,后面留着一个空语句实在是别扭,
干脆不要好一点
if(双击)
printf("打开一个聊天窗口");
也就是一个意思,否则什么都不做

再来一个,比如说你要判断你的成绩属于哪一个等级,优良中差
if( 成绩 >90)
printf("优");
否则呢,再判断是否是良
if( 成绩 >90)
printf("优");
else
if(成绩>80)
printf("良");
再否则呢,判断是否是中
if( 成绩 >90)
printf("优");
else
if(成绩>80)
printf("良");
else
if...
你会发现太麻烦了
然而你发现,
在第一个else和if中间,除了个换行,啥都没有,
干脆把这个换行省下来,只留下一个空格
代码就变成这样子了
if( 成绩 >90)
printf("优");
else if(成绩>80)
printf("良");
else if...
这就成了if...else if...

相关链接

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