C语言中的break和continue(非常详细,附带实例)
在本节中,带大家学习 C 语言的两个关键字,即 break 和 continue,用于编写更为复杂的循环流程。
当程序执行到 break 语句时,程序会立即跳出循环并执行下一条语句。也就是说,break 可以用于在循环内部提前结束循环,而不必等到循环条件不满足才退出循环。
例如:
计数器 i 为 0~9 时,程序无法进入 if 内部。一旦计数器 i 为 10,程序就进入 if 内部,执行了 break 语句,并立即跳出了 while 循环。
运行结果为:
break 语句被执行后,程序立刻从 break 处跳至循环结束,break 语句后的循环行为将均不执行。我们可以尝试修改代码,把 break 放到 printf() 的后面:
最后,我们尝试把 break 放到循环的最后:
除了上述的用法,我们还可以在其他场景中使用 break。例如,我们可以编写一个密码验证程序,要求用户输入密码,如果用户输入的密码不正确,则程序将输出密码错误提示,并要求用户重新输入密码:
例如:
需要注意的是,在使用 continue 语句时,需要确保程序不会陷入无限循环,即需要保证循环条件最终能够得到满足或者在循环内部使用 break 语句。另外,过多使用 continue 语句也会影响程序的可读性和可维护性。
值得注意的是,在 for 循环中使用 continue 关键字会产生不同于 while 循环的结果。因为 for 循环在每次循环结束后,将执行 for 语句括号内的第三个表达式,即更新计数器表达式。因此,当 for 循环遇到 continue 关键字时,它将先执行 i++ 语句,将 i 的值更新为 16,然后开始新一轮的循环,判断表达式 i < 20 是否成立。
C语言break跳出循环
在 C语言中,break 是一个关键字,用于跳出当前循环结构(for、while、do-while 循环),并继续执行循环后面的代码。当程序执行到 break 语句时,程序会立即跳出循环并执行下一条语句。也就是说,break 可以用于在循环内部提前结束循环,而不必等到循环条件不满足才退出循环。
例如:
#include <stdio.h> int main() { int i = 0; while(1) { if (i == 10) { break; } printf("%d ", i); i++; } printf("\ni=%d ", i); return 0; }该代码中,while 的循环条件依然始终为真,因此不能期望从 while 处跳出循环。但是,我们把实际的循环条件放置到了 if 语句中。
计数器 i 为 0~9 时,程序无法进入 if 内部。一旦计数器 i 为 10,程序就进入 if 内部,执行了 break 语句,并立即跳出了 while 循环。
运行结果为:
0 1 2 3 4 5 6 7 8 9
i=10
break 语句被执行后,程序立刻从 break 处跳至循环结束,break 语句后的循环行为将均不执行。我们可以尝试修改代码,把 break 放到 printf() 的后面:
#include <stdio.h> int main() { int i = 0; while(1) { printf("%d ", i); if (i == 10) { break; } i++; } printf("\ni=%d ", i); return 0; }运行结果为:
0 1 2 3 4 5 6 7 8 9 10
i=10
最后,我们尝试把 break 放到循环的最后:
#include <stdio.h> int main() { int i = 0; while(1) { printf("%d ", i); i++; if (i == 10) { break; } } printf("\ni=%d ", i); return 0; }运行结果为:
0 1 2 3 4 5 6 7 8 9
i=10
除了上述的用法,我们还可以在其他场景中使用 break。例如,我们可以编写一个密码验证程序,要求用户输入密码,如果用户输入的密码不正确,则程序将输出密码错误提示,并要求用户重新输入密码:
#include <stdio.h> int main() { int password; while(1) { scanf("%d", &password); if (password == 12345) { break; } printf("password error\n"); } printf("welcome back\n"); return 0; }运行结果为:
123
password error
1234
password error
12345
welcome back
C语言continue开始新一轮循环
在 C语言中,continue 是一个关键字,用于跳过循环结构(for、while、do-while 循环)中前循环的剩余部分并开始下一次循环。也就是说,当程序执行到 continue 语句时,它会立即跳过当前循环中后续的语句,直接进入下一次循环。例如:
#include <stdio.h> int main() { int i = 0; while(i < 20) { if (i == 6) { i = 15; continue; } printf("%d ", i); i++; } return 0; }运行结果为:
0 1 2 3 4 5 15 16 17 18 19
该代码使用 while 循环输出 0~19 的数字,其中 0~5 是正常输出的。当变量 i 为 6 时,if 条件满足,i 被赋值为 15,接着执行 continue。continue 将跳过本次循环的内容,重新开始循环。因此,6~14 的值被跳过,从 15 开始继续循环直到 19。需要注意的是,在使用 continue 语句时,需要确保程序不会陷入无限循环,即需要保证循环条件最终能够得到满足或者在循环内部使用 break 语句。另外,过多使用 continue 语句也会影响程序的可读性和可维护性。
使用break和continue
在 for 循环中,同样可以使用关键字 break 和 continue 来控制循环的执行流程。1) 在for循环中使用continue
关键字 continue 也可以用于 for 循环。例如:#include <stdio.h> int main() { for(int i = 0; i < 20; i++) { if (i == 6) { i = 15; continue; } printf("%d ", i); } return 0; }运行结果:
0 1 2 3 4 5 16 17 18 19
在这段代码中,当 i 等于 6 时,我们使用 continue 关键字跳过这次循环。值得注意的是,在 for 循环中使用 continue 关键字会产生不同于 while 循环的结果。因为 for 循环在每次循环结束后,将执行 for 语句括号内的第三个表达式,即更新计数器表达式。因此,当 for 循环遇到 continue 关键字时,它将先执行 i++ 语句,将 i 的值更新为 16,然后开始新一轮的循环,判断表达式 i < 20 是否成立。
2) 在for循环中使用break
除了关键字 continue,我们还可以在 for 循环中使用关键字 break。例如:#include <stdio.h> int main() { int i = 0; for(i = 0; i < 20; i++) { if (i == 6) { break; } } printf("%d ", i); return 0; }运行结果为:
6
在这段代码中,当 i 等于 6 时,使用 break 关键字跳出循环。与 continue 关键字不同,使用 break 关键字后,for 循环将直接跳出循环,而不更新计数器。3) 循环嵌套中使用break和continue
在循环嵌套中,使用 break 和 continue 关键字时,会影响哪个循环呢?下面我们来看一个实例:#include <stdio.h> int main() { for(;;) { for(;;) { break; // 跳出内层循环 } break; // 跳出外层循环 } return 0; }在循环嵌套中,break 和 continue 会影响它们所处的直接上级循环。对于上面的代码,内层循环调用 break 跳出自身的循环进入外层循环,外层循环再次调用 break 结束外层循环。