目录
2.1 if-else if -else if.........else if
2.1.1 if(1),if(2)...if(n)和 if-else if.....else if 的区别
2.2 if-else if -else if.........else if-else
1.if-else
if-else 结构只执行if 的语句或者else 的语句,必会执行其中一个。当if条件成立时,执行语句1,跳出该选择结构;否则执行else后的语句2
int a=6;
if(a>5)//满足条件,执行语句1
{
a++;//语句1
}
else
{
a=a+1;//语句2
}
2.1 if-else if -else if.........else if
2.1.1 if(1),if(2)...if(n)和 if-else if.....else if 的区别
if(1),if(2)...if(n)每个语句是相互独立的,互不影响,即if(1)条件成不成立并不影响后面的if判断和执行,
if-else if.....else if是互斥的,该结构里面只能执行一个,一旦其中一个条件成立,则执行该条件对应的语句,其他判断语句都不会执行
if-else if-else if.....else if 结构只执行if-else if中的一个语句,也就是当其中一个条件(if或者else if判断条件)满足时则执行,执行后即跳出该选择结构。当if条件成立时,执行语句1,跳出该选择结构;否则判断if后的else if条件,一旦条件满足则执行当前语句,然后跳出该选择结构。
int a; //成绩
if(a>=90)
{
printf("excellent“);//执行语句1
}
else if(80=<a<90)
{
printf("good“);//执行语句2
}
else if(70=<a<80);
{
printf("ordnary“);//执行语句3
}
else if(60=<a<70)
{
printf("pass”); //执行语句4
}
当a=92,执行语句1;当a=72,执行语句 ;3当a=50,一句都不执行
2.2 if-else if -else if.........else if-else
if-else if-else if.....else if -else结构会执行if 的语句或者else if的语句或者else的语句,必会执行且只能其中一个。当if条件成立时,执行语句1,跳出该选择结构;不成立则接着判断if后的else if条件,一旦条件满足则执行当前语句,然后跳出该选择结构,if和else if的条件都不满足,则执行else后的语句。
int a; //成绩
if(a>=90)
{
printf("excellent“);//执行语句1
}
else if(80=<a<90)
{
printf("good“);//执行语句2
}
else if(70=<a<80);
{
printf("ordnary“);//执行语句3
}
else if(60=<a<70)
{
printf("pass”); //执行语句4
}
else if(a<60)
{
printf("fail”); //执行语句5
}
当a=92,执行语句1; 跳出选择结构
当a=72,执行语句 3; 跳出选择结构
当a=50,执行语句5;跳出选择结构
3.switch-case
3.1 switch-case
switch-case(break)和if-else if 类似;
switch是表达式,case是多种选择,当有case 后加break时,只能执行一种使表达式成立的常量表达式
switch (表达式)
{
case 常量表达式1: 语句1;//break;
case 常量表达式2: 语句2;//break;
┇
case 常量表达式n: 语句n;//break;
}当switch后面括号内“表达式”的值与某个case后面的“常量表达式”的值相等时,就执行此case后面的语句。执行完一个case后面的语句后,流程控制转移到下一个case继续执行。如果你只想执行这一个case语句,不想执行其他case,那么就需要在这个case语句后面加上break,跳出switch语句。
3.2switch-case-default
switch-case(break)-default和if-else if-else类似;
switch (表达式)
{
case 常量表达式1: 语句1;break;
case 常量表达式2: 语句2;//break;
┇
case 常量表达式n: 语句n;//break;
default: 语句n+1;//break;
}当switch后面括号内“表达式”的值与某个case后面的“常量表达式”的值相等时,就执行此case后面的语句。执行完一个case后面的语句后,流程控制转移到下一个case继续执行。如果你只想执行这一个case语句,不想执行其他case,那么就需要在这个case语句后面加上break,跳出switch语句。
若所有的 case 中的常量表达式的值都没有与 switch 后面括号内“表达式”的值相等的,就执行 default 后面的语句,如果 default 是最后一条语句的话,那么其后就可以不加 break,因为既然已经是最后一句了,则执行完后自然就退出 switch 了。
也可以不要 default 语句,就跟 if…else 最后不要 else 语句一样。但最好是加上,后面可以什么都不写,但是后面的冒号和分号千万不能省略,省略了就是语法错误。