1.if的使用 (1)if语句 作用:判断条件是否成功,成功则执行语句。 格式: if(判断条件){ 语句; } 注意:执行判断条件,如果为真(非0),则执行大括号中的语句。否则不执行。 实例: #include int main() { int a = 10; if( a>100 ) { printf('a>100,a的值为%d\n',a); } printf('程序结束\n'); return 0; } 运行运行程序: 程序结束 因为a>100不成立,所以不执行大括号里的语句。 (2)if-else语句 作用:判断条件是否成功或者失败,分别执行对应代码。 格式: if(判断条件){ 语句1; } else { 语句2; } 注意:执行判断条件,如果为真(非0),则执行其后的大括号中的语句1;否则,执行else后大括号里的语句2。 实例:判定两个数中最大的数。 #include int main() { int a,b; a = 10; b = 20; if( a>b ) { printf('最大数字a=%d\n',a); } else { printf('最大数字b=%d\n',b); } return 0; } 运行程序: 最大数字b=20 因为a>b不成立,所以不执行if后的语句,执行else后面的语句。 (3)if-else-if语句 作用:根据一个问题的多种情况,分别执行对应代码。 格式: if(判断条件1){ 语句1; } else if(判断条件2){ 语句2; } else if(判断条件3){ 语句3; } …… else if(判断条件n){ 语句n; } else { 语句n+1; } 注意:执行判断条件1,如果为真(非0),则执行其后的大括号中的语句1;如果判断条件1为假,则跳过语句1,执行判断条件2,如果为真(非0),则执行其后的大括号中的语句2;如果判断条件2为假,则跳过语句2,执行判断条件3,以此顺序执行,如果n个判断条件都为假,则执行else后面的语句n+1。 实例:输入一个百分制成绩,转换为ABCDE五级制成绩输出 A 90-100 B 80-89 C 70-79 D 60-69 E 0-59 #include int main() { int score; printf('请输入一个成绩:'); scanf('%d',&score); if(score>=90 && score<=100 ){ printf('A\n'); } else if(score>=80 && score<=89 ){ printf('B\n'); } else if(score>=70 && score<=79 ){ printf('C\n'); } else if(score>=60 && score<69 ){ printf('D\n'); } else if(score>=0 && score<=59 ){ printf('E\n'); } else { printf('输入有误\n'); } retrun 0; } 运行程序: 请输入一个成绩:82 B 进行第一个判断,82不在90-100之间,不执行第一个大括号里的语句,进入下一个判断,82在80-89直接,执行第二个大括号里的语句,结束程序。 特别注意: 1)不要在跟着if的小括号后面加分号(;); 2)当if和else后的语句块只有一个语句的时候,大括号{}可以省略。 2.switch的使用 作用:根据一个问题的多种情况,分别执行对应代码。 格式: switch(表达式) { case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; …… case 常量表达式n: 语句n; break; default: 语句n+1; break; } 实例:输入1-7,输出对应数字周一到周日的英文单词。 #include int main() { int day; printf('请输入一个数字(1-7之间):'); scanf('%d\n',&day); switch(day) { case 1: printf('Monday\n'); break; case 2: printf('Tuesday\n'); break; case 3: printf('Wednesday\n'); break; case 4: printf('Thursday\n'); break; case 5: printf('Friday\n'); break; case 6: printf('Saturday\n'); break; case 7: printf('Sunday\n'); break; default: printf('输入有误\n'); break; } return 0; } 运行程序: 请输入一个数字(1-7之间):6 Saturday 输入6,程序直接跳转到case 6,执行printf('Saturday\n');,然后因为其后break,直接结束程序。 switch语句的穿透问题: 当case块里不加break的时候,会发生穿透;有break可以跳出当前的seitch语句。 总结: 能用switch解决的问题,也能用if解决;反之一样。 如果要判断范围的话,用if方面;如果要判断具体某个值,并且不是很多的时候,用switch方便、简洁。 |
|