码迷,mamicode.com
首页 > 其他好文 > 详细

C跳转语句

时间:2021-01-26 12:36:31      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:cas   求和   理解   efault   需求   程序设计   rcm   说明   变量   

1.跳转控制语句break

1.1 需求

  • 随机生成一个数,直到生成了97这个数,一共用了几次

    • rand()返回一个范围在0到RAND_MAX之间的伪随机数
    • rand()函数在 stdlib.h 头文件
  • 通过该需求可以说明其他流程控制数据的必要性,比如break

  • 在执行循环的过程中,当满足某个条件时,可以提前退出该循环,这时,就可能使用break

1.2 基本介绍

  • break语句用于终止某个语句块的执行,一般使用在switch或者循环中

1.3 基本语法

{

.......

break;

.......

}

1.4 快速入门

int i;
for(i=0;i<10;i++){
    if(i=3){
        break;
        printf("i=%d",i);
    }
}
void main(){
    int i,j;
    for(j=0;j<4,j++){
        for(i=0;i<10;i++){
            if(i==2){
                break;
                printf("i=%d",i);
            }
        }
        getcahr();
    }
}
void main(){
    //100以内的数求和,求出当和第一次大于20当前数
    int i = 1;
    int sum = 0;
    for(i=0;i<=100;i++){
        sum+=i;
        if(sum>20){
            printf("当和第一次大于20的当前数=%d",i);
            break;
        }
    }
    getchar();
}
void main(){
    //实现登录验证,有三次机会,如果用户名为张无忌,密码为888,提示登陆成功
    //否则提示还有几次机会,使用for完成
    //分析
    //1.首先要定义一个变量,保存登陆的机会chance
    //2.定义两个字符数组,接收用户名和密码
    //使用for循环+break,如果登陆成功就提前退出
    int chance = 3;
    int loginCount = chance;
    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;
        }else{
            //机会次数减少
            chance--;
            printf("你还有%d次登陆机会",chance);
        }
    }
    getchar();
    getchar();
}

2.跳转控制语句continue

2.1 基本介绍

  • continue语句用于结束本次循环,继续执行下一次循环

2.2 基本语法

{

.......

continue;

........

}

2.3 快速入门

void main(){
    int i = 1;
    while(i<=4){
        i++;
        if(i==3){
            continue;
        }
        printf("i=%d",i);
    }
    getchar();
}
void main(){
    int i ,j;
    for(j=0;j<4;j++){
        for(i=0;i<10,i++){
            if(i==2){
            continue;
        }
        printf("i=%d",i);
    }
    printf("==============");
        }
    getchar();
}

2.4 注意事项和细节说明

  • continue语句,只能配合循环使用,不能单独和switch/if使用
void main(){
    int i=0;
    switch(i){
        case 1:continue;//错误
    }
    if(i>1){
        continue;//错误
    }
}

2.5 练习

void main(){
    //从键盘输入个数不确定的整数,并判断读入的正数和负数的个数
    //输入0时结束程序
    //分析
    //1.定义变量positive保存正数的个数
    //2.定义negative保存负数的个数
    //3.使用for + break +continue
    
    int posivive = 0;
    int negative = 0;
    int num = 0;//接收控制台输入的数
    
    for(;;){//是一个死循环
        printf("请输入数");
        scanf("%d",&num);
        if(num==0){
            break;
        }
        if(num>0){
            positive++;
            continue;
        }
        negative++;
    }
    printf("正数个数%d 负数个数%d",positive,negative);
    getchar();
    getcahr();
    
}
void main(){
    /*
    某人有100000元,每经过一次路口,需要缴费,规则如下
    当现金大于50000时,每次交5%
    当现金小于等于50000时,每次交1000
    编程计算该人可以经过多少路口
    
    分析
    1:money保存金额
    2:定义变量count统计可以经过多少个路口
    3. while break
    4.break条件是money<1000
    */
    
    int count =0;
    int money = 100000;
    while(1){
        if(money<1000){
            break;
        }
        if(money>50000){
            money = money*0.95;
        }else if(money<=50000){
            money -= 1000;
        }
        count++;
    }
    printf("100000元可以经过%d个路口剩余%d元",count,money);
    getchar();
}

3.跳转控制语句goto

3.1 介绍

  • C语言的goto语句可以无条件的转移到程序中指定的行
  • goto语句通常与条件语句配合使用。可以来实现条件转移,跳出循环体等功能
  • 在C程序设计中一般不主张使用goto语句,以免造成程序流程的混乱,使理解和调试程序都产生困难

3.2 基本语法

goto label

......

label :statement

3.3 案例

void main(){
    printf("start");
    goto label;
    printf("OK1");
    printf("ok2");
    label:
    printf("ok3");
    printf("ok4");
    getchar();
}

4 跳转控制语句return

  • return使用在函数,表示跳出所在的函数
void main(){
    /*判断一个整数是否是水仙花数,所谓水仙花数是指一个三位数,其各个位上数字立方和等于其本身
    分析
    1.先获取一个三位数的各个位的数字 使用 / 和 %
    2.将得到的各个数字立方,并求和判断是否和原数相等
    */
    int num = 152;
    int num1 = num / 100;
    int num2 = num % 100 /10;
    int num3 = num % 10;
    if(num==num1*num1*num1+num2*num2*num2+num3*num3*num3){
        printf("%d就是水仙花数"num);
    }else{
        printf("%d不是水仙花数",num);
    }
    getchar();
}
int m = 0,n=3;
if(m>0){
    if(n>2){
        printf("A");
    }else{
        printf("B");
    }
}
void main(){
    //编写程序,根据输入的月份和年份,求出该月的天数
    //就是考虑闰年和平年
    int year = 2019;
    int month = 2;
    switch(month){
        case 1:
        case 3:
        case 5:    
        case 7:
        case 8:
        case 10:
        case 12:    
            printf("%d年的%d月是%d",year,month,31);
            break;
        case 2:
            if(year%4==0&&year%100!=0||year%400==0){
                printf("%d年的%d月是%d",year,month,29);
            }else{
                printf("%d年的%d月是%d",year,month,28);
            }
            break;
        default:
            printf("%d年的%d月是%d",year,month,30);
            break;
    }
    getchar();
}
int b1 =0,b2=0;
if((b1==2>3)&&(b2=5>0)){
    printf("(b1=2>3)&&(b2=5>0)为真");
}
printf("b1=%d b2=%d",b1,b2);
getchar();
int a = 2;
while(a<2){
    printf("执行while");
}
do{
    printf("执行do--while");
}while(a<2);

void main(){
    //输出小写的a--z以及大写的Z--A
    char c1,c2;
    for(c1=‘a‘;c1<=‘z‘;c1++){
        printf("%c",c1);
    }
    printf("================");
    for(c2=‘Z‘;c2>=‘A‘;c2--){
        printf("%c",c2);
    }
    getchar();
}
void main(){
    //求出1-1/2+1/3-1/4....1/100
    double sum = 0.0;
    int i;
    for(i=1;i<=100;i++){
        if(i%2!=0){
            sum+=1.0/i;
        }else{
            sum-=1.0/i;
        }
    }
    printf("sum=%.2f",sum);
    getchar();
}

C跳转语句

标签:cas   求和   理解   efault   需求   程序设计   rcm   说明   变量   

原文地址:https://www.cnblogs.com/mx-info/p/14324586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!