runsun的编程学习日志-007

while循环控制语句

while(条件){   //只要条件为真,将一直执行,要避免死循环到一定条件要退出。除c51单片机代码

        执行满足条件的语句

}

爱你一万遍:

/*
    int i = 0;
    while(i <10){
        puts("I love you");
        i = i + 1;
    }    //正常写法
    */
    //简易写法
    int times;
    times = 10;
    while(times){
        puts("I love you");
        times --;
        printf("%d\n",times);
    }
    return 0;

 条件值为0即为假即退出

tips:cmd中上下键可调用之前写过的命令,如果陷入死循环,则按Ctrl+c结束,cls是清理屏幕命令

i=i+1也可以写成i++

i=i-1也可以写成i--

求和1到100所有数据之和

    int i = 100;
    int sum = 0;
    while(i){
        sum = sum + i;
        printf("i: %d\n",i);
        i --;
    }
    printf("sum=%d\n",sum);
    return 0;

dowhile

#include <stdio.h>
int main()
{
    int data = 10;
    do{
        puts("this is a test");
        data --;
    }while(data != 0);
    return 0;
}

while的三个表达式:初始值,条件的临界值,条件发生变化

for循环

    int data;
    //条件赋初值;判断临界值;条件改变
    for(data=0;data<10;data++){
        puts("i miss you");
    }

其他形式

 int data=0;
    for(;data<10;data++){
        puts("i miss you");
    }

 int data=0;
    for(;data<10;){
        puts("i miss you");

        data++;
    }

 int data=0;
    for(;;){
        puts("i miss you");

        data++;
    }死循环

C99允许:

for(int i = 0;i<100;i++);

break提前结束循环

    int numOfPerson;
    int totalMoney = 0;
    int money;
    for(numOfPerson = 1;numOfPerson < 1000;numOfPerson ++){
        puts("请输入捐款的数目:");
        scanf("%d",&money);
        totalMoney = totalMoney + money;
        if(totalMoney >= 100000){
            puts("捐款已经达到10万元了");
            break;
        }
    }
    printf("总捐款人数是%d人\n",numOfPerson);
    printf("总捐款金额是%d元\n",totalMoney);
    printf("人均捐款金额是%.2f元\n",(float)totalMoney/numOfPerson);
    return 0;

结果

请输入捐款的数目:
456
请输入捐款的数目:
5468
请输入捐款的数目:
3365
请输入捐款的数目:
3594
请输入捐款的数目:
5599
请输入捐款的数目:
56465
请输入捐款的数目:
15151
请输入捐款的数目:
1454
请输入捐款的数目:
15584
捐款已经达到10万元了
总捐款人数是9人
总捐款金额是107136元
人均捐款金额是13392.00元

continue提前结束本次循环

要求输出100-200之间不能被3整除的数

#include <stdio.h>
int main()
{
    int data = 100;
    int i = 0;
    for(;data <= 200;data ++){
        
        if(data % 3 == 0){
            continue;
        }
        printf("%d,",data);
        i ++;
    }
    printf("\n一共有%d个数\n",i);
    return 0;
}

结果:

100,101,103,104,106,107,109,110,112,113,115,116,118,119,121,122,124,125,127,128,130,131,133,134,136,137,139,140,142,143,145,146,148,149,151,152,154,155,157,158,160,161,163,164,166,167,169,170,172,173,175,176,178,179,181,182,184,185,187,188,190,191,193,194,196,197,199,200,
一共有68个数

循环嵌套

#include <stdio.h>
int main()
{
    int i;
    int j;
    for(i = 1;i <= 4;i ++){
        for(j = 1;j <= 5;j ++){
            printf("%d ",i*j);
        }
        printf("\n");
    }
    return 0;
}

结果

1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20

练习

1.输入两个正整数,求其最大公约数和最小公倍数

#include <stdio.h>
int main()
{
    int m, n, num1, num2, temp;//定义整型变量 
    printf("请输入两个数:");//提示语句 
    scanf("%d%d",&num1,&num2);//键盘输入两个数 
    m=num1; //赋值 
    n=num2; //赋值 
    while(num2!=0) // 余数不为0,继续相除,直到余数为0 
    { 
       temp=num1%num2; 
       num1=num2; 
       num2=temp;
    }
    printf("最大公约数是:%d\n", num1);//输出最大公约数 
    printf("最小公倍数是:%d\n", m*n/num1);//输出最小公倍数 
    return 0;
}

结果:

请输入两个数:12 20
最大公约数是:4
最小公倍数是:60

2.水仙花数

    int n,i,j,k;
    puts("三位数的水仙花数有:");
    for(n = 100;n < 1000;n ++){
        i = n / 100;
        j = n / 10 % 10;
        k = n % 10;
        if((i*i*i + j*j*j + k*k*k) != n){
            continue;
        }
        printf("%d ",n);
    }

结果

三位数的水仙花数有:
153 370 371 407

循环结束罗。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

run sun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值