跳转控制语句
1.跳转控制语句——break
(1)基本介绍
break语句用于终止某个语句块的执行,一般使用在switch或者循环[三大循环]中。
(2)流程图
![image-20221022091649448](https://serendipity01.oss-cn-nanjing.aliyuncs.com/image-20221022091649448.png)
(3)练习
练习1:100以内的数求和,求出 当和 第一次大于20的当前数【for】
#include <stdio.h>
int main(){
//100以内的数求和,求出 当和 第一次大于20的当前数[for]
int i = 1;
int sum = 0;
for(i=1;i<=100;i++){
sum += i;
if(sum>20){
printf("当和第一次大于20的当前数=%d",i);
break;
}
}
getchar();
}
练习2:实现登录验证,有三次机会,如果用户名为”我爱吃西红柿” ,密码”888”提示登录成功,否则提示还有几次机会,请使用for 循环完成
提示:注意代码中的分析思路
#include <stdio.h>
#include <string.h>
int main(void){
//分析
//1.首先定义一个变量,保存登录机会(次数)chance
//2.定义两个字符数组,接收用户名和密码
//3.使用for循环和break,如果登录成功,就提前退出
int chance = 3;
int loginCount = 3;//登录次数
char name[10] = "";
char pwd[10] ="";
int i;//循环变量
for(i=1;i<=loginCount ;i++){
printf("请输入名字:");
scanf("%s",name);//字符数组,不要加&
printf("请输入密码");
scanf("%s",pwd);
//判断字符串相同使用strcmp
if(strcmp("我爱吃西红柿",name)==0 && strcmp("888",pwd)==0){
printf("登录成功");
break;//for+break
}else{
//机会次数减少
chance--;
printf("你还有%d次登录机会",chance);
}
}
getchar();
getchar();
}
2.跳转控制语句——continue
(1)基本介绍
continue语句用于结束本次循环,继续执行下一次循环。
(2)流程图
![image-20221022105253748](https://serendipity01.oss-cn-nanjing.aliyuncs.com/image-20221022105253748.png)
(3)案例
#include <stdio.h>
int main() {
int i,j;
for( j = 0; j < 4; j++){
for( i = 0; i < 10; i++){
if(i ==3){
//看看分别输出什么值,并分析
continue ;
}
printf("i = %d\n" , i);
}
printf("================\n");
}
getchar();
}
(4)注意事项和细节说明
continue语句,只能配合循环语言使用,不能单独和switch/if使用。
![image-20221022111642775](https://serendipity01.oss-cn-nanjing.aliyuncs.com/image-20221022111642775.png)
(5)题目
题目1:从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序【使用for循环 ,break, continue完成】 【positive 正数,negative】
#include <stdio.h>
int main(){
//分析
//1.定义变量positive保存正数的个数
//2.定义变量negative保存正数的个数
//3.使用for+break+continue
int positive = 0;
int negative = 0;
int num = 0;//接收从控制台输入的数
for(;;){//是一个死循环
printf("请输入数");
scanf("%d",&num);
if(num == 0){
break;//跳出for
}
if(num > 0){//正数
positive++;//累计
continue;
}
//num是一个负数
negative++;
}
printf("正数个数%d 负数个数%d",positive,negative);
getchar();
getchar();
}
题目2:某人有100,000元,每经过一次路口,需要交费,规则如下:
1.当现金>50000时,每次交5%
2.当现金<=50000时,每次交1000
编程计算该人可以经过多少次路口,使用 while break方式完成
#include <stdio.h>
int main(){
//分析:
//1.money 保存 金额
//2.定义变量count统计可以经过多少个路口
//3.while break
//4.break 条件是money<1000时
int count = 0;//路口数
int money = 100000;//现有的钱
while(1){//死循环
//判断是否退出
if(money<1000){//退出while条件
break;
}
if(money>50000){
money = money * 0.95;
count++;//经过的路口增加1
}else if(money<=50000){
money -= 1000;
count++;
}
//count++;可以合并到这
}
printf("100000元可以经过%d个路口,剩余%d元",count,money);
getchar();
getchar();
}
3.跳转控制语句——goto
1.介绍
-
C 语言的 goto 语句可以无条件地转移到程序中指定的行。
-
goto语句通常与条件语句配合使用。可用来实现条件转移,跳出循环体等功能。
-
在C程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难
2.流程图
![image-20221022191814427](https://serendipity01.oss-cn-nanjing.aliyuncs.com/image-20221022191814427.png)
3.案例演示
#include <stdio.h>
int main(){
printf("遮天\n");
goto label1;
printf("十凶\n");
printf("柳神\n");
label1:
printf("盘龙\n");
getchar();
}
4.跳转控制语句——return
(1)介绍
return使用在函数,表示跳出所在的函数