break
break如果用于循环适用于终止循环
break如果用于switch,则是用来终止switch
break不能直接用于if,除非if属于循环内部的一个子句 如 if (表达式) break 是错误的
1 # include <stdio.h> 2 3 int main (void) 4 { 5 int i; 6 7 for (i=0; i<3; ++i) 8 { 9 if (3 >2) 10 break; //break 虽然是if内部的语句,但break终止的是外部的for循环程序 11 printf("嘿嘿!\n") //永远不会输出,因为break终止循环 12 } 13 14 return 0; 15 }
1 #include <stdio.h> 2 3 int mian (void) 4 { 5 int i, j; 6 7 for (i=0; i<3; ++i) 8 { 9 for (j=0; j<4; ++j) 10 break; // break 只能终止离它最近的循环 11 prntf("您好!\n") //输出三次 12 } 13 14 return 0; 15 }
上例为多层循环中使用break 语句,它只能终止离它最近的循环。同样,在多层switch嵌套中,break也只能终止离它最近的switch
continue
用于跳过本次循环余下的语句,转去判断是否需要执行下次循环,continue终止此次循环,不会终止if。
如 for (1; 2;3)/while(表达式n)
a;
b;
continue;
c;
d;
如果执行continue语句,则跳过c、d语句,转去执行语句3、语句2/判断表达式n是否成立,因此将for语句转换成continue语句时,由于continue后跳过循环中余下的语句,所以自增自减等需要放在循环语句的continue之前,否则转换不等价