switch语句可以嵌套
switch(expression){ case constant-expression : statement(s); break; /* 可选的 */// 如果这里没有break,则会继续执行下面一个case里的语句,直到遇见一个break或者switch语句结束 case constant-expression : statement(s); break; /* 可选的 */ /* 您可以有任意数量的 case 语句 */ default : /* 可选的 */ statement(s); } #include <stdio.h> int main () { /* 局部变量定义 */ char grade = 'B'; switch(grade) { case 'A' : printf("很棒!\n" ); break; case 'B' : case 'C' : printf("做得好\n" ); case 'D' : printf("您通过了\n" ); break; case 'F' : printf("最好再试一下\n" ); break; default : printf("无效的成绩\n" ); } printf("您的成绩是 %c\n", grade ); return 0; } //输出 做得好 您通过了 您的成绩是 BExp1 ? Exp2 : Exp3;
while语句在执行循环主体前测试条件、而do……while在循环主题执行后测试条件,即循环主体会被至少执行一次
goto语句允许把控制无条件的转移到同一函数内的被标记语句 但是不建议使用goto语句,因为他使得程序的执行流程变得难以跟踪,任何使用goto的语句都可以改写成为其他写法。语法
goto label; .. . label: statement; #include <stdio.h> int main () { /* 局部变量定义 */ int a = 10; /* do 循环执行 */ LOOP:do#label为LOOP的语句 { if( a == 15) { /* 跳过迭代 */ a = a + 1; goto LOOP;#跳到label为LOOP的语句 } printf("a 的值: %d\n", a); a++; }while( a < 20 ); return 0; }