5.5 跳转控制语句
5.5.1 break
5.5.1.1 break介绍
break 语句用于终止某个语句块的执行,一般使用在 switch 或者循环中
5.5.1.2代码
#include<stdio.h> void main() { int num; for (num = 1; num <= 10; num++) { if (num == 7) {//如果num = 7,则跳出循环 break; } printf("num = %d\n", num); } }
5.5.1.3 break练习
- 100 以内的数求和,求出 当和 第一次大于 20 的当前数
//100 以内的数求和,求出 当和 第一次大于 20 的当前数 #include<stdio.h> void main() { int num=1, sum=0; for (num = 1; num <= 100; num++) { sum += num; if (sum > 20) { printf("当前数为%d", num); break; } } }
实现登录验证,有三次机会,如果用户名为”张无忌” ,密码”888”提示登录成功,否则提示还有几次机会, 请使用 for 循环完成
//实现登录验证,有三次机会,如果用户名为”张无忌” ,密码”888”提示登录成功,否则提示还有几次机会, 请使用 for 循环完成 #include<stdio.h> #include<string.h> void main() { char account[20] ="", password[20] =""; int times = 0; for (times = 1; times <= 3; times++) { printf("请输入帐号:"); scanf_s("%s", account, sizeof(account)); printf("请输入密码 :"); scanf_s("%s", password, sizeof(password)); if (strcmp(account, "张无忌") == 0 && strcmp(password, "888") == 0) { printf("登录成功!\n"); break; } else { printf("登录失败,还剩下%d次机会\n", 3 - times); } } }
5.5.2 continue
5.5.2.1 countinue介绍
continue 语句用于结束本次循环,继续执行下一次循环
5.5.2.2 continue语法
#include<stdio.h> void main() { int num1, num2; for (num1 = 0; num1 <= 3; num1++) { for (num2 = 0; num2 < 3; num2++) { if (num2 == 2) { continue; } printf("num1 = %d, num2 = %d\n", num1, num2); } } }
5.5.2.3 continue注意事项
continue 语句,只能配合循环语言使用,不能单独和 switch/if使用
5.5.2.4 continue练习
- 从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为 0 时结束程序【使用 for 循环 ,break, continue 完成】 【positive 正数,negative】
#include<stdio.h> void main() { int positiveCount = 0, negativeCount = 0, count = 0; for (; ;) { printf("请输入数字:"); scanf_s("%d", &count); if (count > 0) { positiveCount++; continue; } else if (count < 0) { negativeCount++; continue; } else if (count == 0) { break; } } printf("正数的个数是%d,负数的个数是%d", positiveCount, negativeCount); }
2.某人有 100,000 元,每经过一次路口,需要交费,规则如下: 当现金>50000 时,每次交 5% 当现金<=50000 时,每次交 1000 编程计算该人可以经过多少次路口,使用 while break 方式完成
#include<stdio.h> void main() { double money = 100000, tax = 0.95; int count = 0; while (money >=1000) { if (money > 50000) { money *= tax; count++; } else if (money <= 50000) { money -= 1000; count++; } } printf("可以经过%d次路口", count); }
5.5.3 goto
5.5.3.1 goto介绍
- C 语言的 goto 语句可以无条件地转移到程序中指定的行
- goto 语句通常与条件语句配合使用。可用来实现条件转移,跳出循环体等功能
- 在 C程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难
5.5.3.2 goto代码
#include<stdio.h> void main() { printf("start!\n"); printf("1\n"); goto label;//跳转到label行 printf("2\n"); printf("3\n"); label://label行 printf("4\n"); }