第四部分、循环(上)

2019年11月16日C语言while循环学习

1.while循环的基本语法

while(循环条件)
{
	循环操作语句;
}

2.循环三要素

1)循环变量的初值

2)循环变量的判断

3)循环变量的更新

循环变量:可以控制循环次数的变量

3.while循环部分练习

1)计算1-100的累加和(极其重要,累加的最基本结构)

#include <stdio.h>

void main() {
    int i = 1;//循环变量的初值
    int sum = 0;
    while(i <= 100)//循环变量的判断
    {
        sum = sum + i;
        i = i + 1;//循环变量的更新
    }
    printf("结果为:%d\n",sum);
}

2)使用循环实现三次密码输入错误退出系统

#include <stdio.h>

void main()
{
    int i = 0;//循环变量
    int passwd;//密码

    while (i < 3)
    {
        printf("请输入密码:");
        scanf("%d",&passwd);
        if(123456 != passwd)
        {
            printf("您输入的密码错误!\n");
        }
        if(i == 2)
        {
            printf("密码输错三次,系统强制退出!");
        }
        i ++;
    }
}

3)某宝双十一2015年交易额为800亿,每年递增25%,请问第几年交易额达到2000亿?

#include <stdio.h>

void main()
{
    double i = 800;
    int year = 2015;

    while (i <= 2000)
    {
        i = i * 1.25;//i *= 1.25循环变量的更新
        year ++;
    }
    printf("按此速度,%d年交易额达到2000亿!",year);
}

4.代码实战–使用循环模拟玩家对战(拳皇)

补充:随机函数(简单了解)

#include <time.h>
srand(time(NULL));//使用时间作为种子,产生不一样的随机数字
printf("随机数字:%d\n",rand());

要求:双方初始HP均为100;每次攻击5-15;HP最先到零或以下的被KO

#include <stdio.h>
#include <time.h>
#include <stdlib.h>//标准库
#include <windows.h>

void main()
{
    srand(time(NULL));//使用时间作为种子,产生不一样的随机数字
    //rand()函数取值范围为0-32767
    printf("随机数字:%d\n",rand());//随机数使用头文件time.h

    int hp1 = 100,hp2 = 100;//定义1p和2p的初始值
    int att1,att2;//定义1p和2p的攻击值
    int i = 1;//轮数
    while(hp1 >= 0 && hp2 >= 0)//当两个玩家都活着时候才可以对战
    {
        //默认1p首先攻击
        //范围a-b,范围为rand%(b-a+1)+a
        att1 = rand() % 11 + 5;
        if(att1 == 15)
        att1 *= 2;//暴击,攻击力为15时为原来两倍
        att2 = rand() % 11 + 5;
        if(att2 == 15)
        att2 *= 2;//暴击,攻击力为15时为原来两倍

        //玩家1攻击,玩家2掉血
        hp2 -= att1;
        //玩家2攻击,玩家1掉血
        hp1 -= att2;

        //输出对战信息
        printf("当前为第%d轮\n",i);
        printf("玩家1攻击力:%d,玩家2剩余血量:%d\n",att1,hp2);
        printf("玩家2攻击力:%d,玩家1剩余血量:%d\n",att2,hp1);
        i ++;
        Sleep(500);//休眠时间为500秒,使用Windows.h头文件
    }
    printf("ko!游戏结束,玩家1的血量:%d\t玩家2的血量:%d\n",hp1,hp2);
}

5.调试步骤(补充)

1)分析错误

2)设置断点

3)启动调试

4)单步运行

5)观察变量

6)发现问题

7)修正代码重新运行

6.do while基本语法

do{
	循环操作;
}while(循环条件);//先执行再判断

7.do while 练习

#include <stdio.h>
void main()
{
    int choice;//用户的选择
    while (1)
    {
        printf("性格测试:\n");
        printf("如果您是一位君王,对于身旁的伴侣您希望?\n");
        printf("1.只要有一位真爱的妻子\n");
        printf("2.可以拥有两位以上的妻子\n");
        printf("3.可以拥有三千佳丽\n");
        do{//输错之后一直循环输入,不退出
            printf("请选择:");
            scanf("%d",&choice);
        }while(choice <=0||choice >3);

        switch(choice)
        {
            case 1:
                printf("您选择了生命中的唯一!\n");
                break;
            case 2:
                printf("你个花心大萝卜!\n");
                break;
            case 3:
                printf("你个渣男!\n");
                break;
        }
    }
}

8.while与do while循环的区别

1)执行顺序不同

2)初始条件不满足循环条件时while循环一次都不会执行do while循环不管任何情况都至少执行一次

#include <stdio.h>//do while数字反转程序
void main()
{
    int num0,num1;
    num0 = 0;
    do{
        printf("请输入一个数:");
        scanf("%d",&num0);
        if(num0 <= 0)
            printf("必须为正数!\n");
    }while (num0 <= 0);
    printf("\n反转后的数为:");
    do
    {
        num1 = num0 % 10;
        printf("%d",num1);
        num0 = num0 / 10;
    }while (num0 != 0);
    printf("\n");
}
#include <stdio.h>//while数字反转程序
void main()
{
    int num0,num1;
    num0 = 0;
    
    while (num0 <= 0)
    {
        printf("请输入一个数:");
        scanf("%d",&num0);
        if(num0 <= 0)
            printf("必须为正数!\n");
    }
    printf("\n反转后的数为:");
    while (num0 != 0)
    {
        num1 = num0 % 10;
        printf("%d",num1);
        num0 = num0 / 10;
    }
    printf("\n");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值