分支与循环中的小知识点(附猜数字游戏)

目录

1.if语句

1.1if 

1.2分支中包含多条语句

1.3嵌套if

1.4悬空else问题

2.关系操作符

3.逻辑操作符(&&,||,!)中的短路

4.switch语句

5.for循环,do while循环

5.1for循环

5.2do while循环

6.猜数字游戏


1.if语句

1.1if 

if(表达式)

语句

表达式结果为0(假),语句不执行,表达式结果不为0(即为真),语句执行。

1.2分支中包含多条语句

if和else语句都默认只控制条语句,若要控制条语句要打{}。(个人建议:可以都打{}

1.3嵌套if

if(条件)

{               }   //也可以写成

else if(条件)  //if(条件)

{               }    //{              }

else if(条件)   //if(条件)

{               }     //{             }    但效率会低一点

else 

{               }

1.4悬空else问题

注意:else总是与它上面最近的且未配对的if配对

结果为

因为else和if(b == 2)配对,如果{if(b == 2) printf("hehe\n")}就会打印出haha

所以建议带上适当的{}

2.关系操作符

>,<,>=,<=,==(等于,=为赋值),!=(不等于)

关系表达式通常返回0或1,表示真假。C语言中0为假,非0为真。

一注意:如:if(a == 3)有些人会这样写if(3 == a),这样如果写成if(3 = a)时会报错,方便找错。比较推荐

二注意:多个关系运算符不宜连用,如:a<b<c 这样写错误,应写成a<b&&b<c

3.逻辑操作符(&&,||,!)中的短路

if(表达式1&&表达式2),当表达式1为假时,不会执行表达式2

if(表达式1||表达式2||表达式3),当表达式1为真,不会执行表达式2和3,当表达式1为假,若表达式2为真,不会执行表达式3

4.switch语句

注意:case 和后面的数字之间必须有空格;

每一个case语句最后要加break若没有break,会执行下一个case语句,直到遇到break跳出循环),default后面也要加break。当default在switch语句最后时可以不加

5.for循环,do while循环

5.1for循环

for(表达式1;表达式2;表达式3)

表达式1 用于循环变量初始化

表达式2 用于循环结果条件判断

表达式3 用于循环变量的调整

注意:for循环中的continue时跳过本次循环后面的代码是回到表达式3,再到表达式2,再进行循环

5.2do while循环

注意:do {    }while();,while()后有个;

6.猜数字游戏

#include <stdio.h>
#include <time.h> //引用了time函数
#include <stdlib.h>//引用了rand函数rand()产生随机数
void menu()
{

    printf("*****        *****\n");
    printf("***** 1.play *****\n");
    printf("***** 0.exit *****\n");
    printf("*****        *****\n");
}
void game()
{
    int a = 0;
    int b = rand()%100+1;//想要产生1到100的数字
    int count = 5;
    while (1)
    {
        if (count == 0)
        {
            break;
        }
        printf("你还有%d次机会\n", count--);
        printf("请输入值:>");
        scanf("%d", &a);
        if (a < b)
        {
            printf("猜小了\n");
        }
        else if (a > b)
        {
            printf("猜大了\n");
        }
        else
        {
            printf("恭喜你!猜对了!答案是%d\n", b);
            break;
        }
    }
}
int main()
{
    int input = 0;
    srand((unsigned int)time(NULL));//使产生的随机数发生变化
    do
    {
        menu();
        printf("please choose :>");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();
            break;
        case 0:
            printf("退出游戏");
            break;
        default:
            printf("输入错误请重新输入\n");
            break;
        }
    } while (input);
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Lzc_217

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

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

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

打赏作者

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

抵扣说明:

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

余额充值