/* break与continue的的用法以及区别 1. 当它们用在循环语句的循环体时,break用于立即退出本层循环,而continue仅仅结束本次循环(本次循环体内不执行 continue语句后的其它语句,但下一次循环还会继续执行。 2. 如果有多层循环时,break只会跳出本层循环,不会跳出其他层的循环 3. break可用于switch语句,表示跳出整个switch语句块,而continue则不能单独的用于switch语句。但是continue可以用于循环内部的switch语句。 4. break和continue语句在循环内的switch语句中使用时,是有区别的。在这种情况下的break是指跳出switch语句块(switch语句块的代码仍然执行)。而这种情况下的continue是指结束本次循环(不在执行switch后面的代码),进行下一次循环 */ /* test1()的打印结果是 i = 0 i = 1 已经跳出循环 是因为break语句直接结束了本层的循环, 直接执行循环后边的语句
printf("已经跳出循环\n");
*/ void test1() { int i = 0; for (i = 0; i < 5; i++) { if (i == 2) { break; printf("我没有被打印出来!\n"); } printf("i = %d\n", i); } printf("已经跳出循环\n"); } /* test2()的打印结果是 i = 0 i = 1 i = 3 i = 4 i = 2没有被打印,是因为continue 结束了那一次循环,继续了下一次循环 */ void test2() { int i = 0; for (i = 0; i < 5; i++) { if (i == 2) { continue; printf("我没有被打印出来!\n"); } printf("i = %d\n", i); } } /* test3()是一个两层for循环,break语句只会跳出最近的一层循环, 第二层for循环继续执行 */ void test3() { int i = 0; int j = 0; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { if (j == 2) { break; } printf("Hello: %d\n", j); } printf("World: %d\n", i); } } /* 在test4()中,break的作用只会跳出 switch()语句块,执行swith语句块后面的程序printf("Hello World!\n"); 而不是跳出循环。 与test5()进行对比,continue是结束本次循环,进行下一次循环, switch()语句块后边的内容不会被打印 */ void test4() { int i = 0; for (i = 0; i < 2; i++) { int j = 5; switch (j) { case 4: printf("你好 %d !!!\n", 4); break; case 5: printf("你好 %d !!!\n", 5); break; case 6: printf("你好 %d!!!\n", 6); break; } printf("Hello World!\n"); } } /* test5()中循环内部的switch语句中的continue是直接结束本次循环, switch语句块后面的printf("Hello World!\n");将不会被执行。 */ void test5() { int i = 0; for (i = 0; i < 2; i++) { int j = 5; switch (j) { case 4: printf("你好 %d !!!\n", 4); continue; case 5: printf("你好 %d !!!\n", 5); continue; case 6: printf("你好 %d!!!\n", 6); continue; } printf("Hello World!\n"); } } int main() { test1(); printf("---------------------------------------------------------"); test2(); printf("---------------------------------------------------------"); test3(); printf("---------------------------------------------------------"); test4(); test5(); printf("---------------------------------------------------------"); system("pause"); return 0; }