C语言分支语句的运用

       生活中我们遇到的事件绝大部分可以分成三类:顺序、选择、和循环。比如:在高中努力苦读的你,就是按着老师的教学方法一步一步的那顺序学习高中知识(顺序)。高考完后,三年努力没有白费,你考了一个很理想的分数,但这并不代表着以后你的人生就能做大做强,选择不同的高校和不同的专业也会影响未来你的发展(选择)。选完专业和学校以后,就要接着日复一日的学习新的知识,直到实现开挂人生(循环),当然也有可能中途买彩票中奖,或者打王者入迷,使你跳出循环,走向其他人生。

       在C语言中,大多数的程序也是按照这三类程序进行,其中的选择和循环就对应着C语言中的控制语句,控制语句又分为:

                1.条件语句(分支语句):if语句、switch语句;

                2.循环执行语句:do while语句、while语句 for语句;

                3.转向语句:break、goto、continue、return。

分支语句(选择结构)

        假设你正在王者峡谷大杀四方,此时为20分钟风暴龙王刷新

        如果你带领队友拿下龙王,顺势一波赢得胜利

        如果你操作失误,20分钟准时掉点,对面趁机拿下龙王结束游戏,游戏失败

        这就是选择

1.1 if语句                

        上面的例子用if语句写出来就是:

        if(好好学习)                         if(表达式)

                走向人生巅峰;                        语句1;           

        else                                          else

                回家摆烂;                                  语句2;

        这里我们就能发现if语句的语法结构为:

        if (表达式1)

                语句1;

        else if(表达式2)

                语句2;

        else

                语句3;

        代码演示:

        狐狸想知道他的考试情况,请帮他判断,(0~60不及格、60~80通过、80~100优秀)

#include <stdio.h>
int main()
{
	int gra = 0;
	printf("请输入小狐狸的分数");
	scanf("%d",&gra);
	//输入成绩
	if (gra < 60)//分支1
		printf("不及格");
	else if (gra >= 60 && gra < 80)//分支2
		printf("及格");
	else if (gra>=80 && gra<=100)//分支3
		printf("优秀");
	else//分支4
		printf("输入错误");
	return 0;

}

输出结果分别为:

分数55时:

分数75时:

分数95时:

输入错误时:

1.2注意if语句中else和if的匹配

例如:请问以下代码最后会输出什么

int main()
{
	int a = 0;
	int b = 1;
	if (a == 3)
		if (b == 1)
			printf("a\n");
	else
		printf("b\n");
	return 0;
}

很多人八成会以为程序最后输出的是“b”,但程序中的“else”匹配的是与他更靠近的if(第二个if),因此当程序走到第一个if那里是a不等于3,则直接跳出程序,就没有输出

正确的写法应该是

int main()
{
	int a = 0;
	int b = 1;
	if (a == 3)
	{
		if (b == 1)
			printf("a\n");
		else
			printf("b\n");
	}
	return 0;
}

这样才能更直观地表示我们写的程序的意思,不让其他读我们程序的人产生歧义

1.3switch语句

分支语句中还包括switch语句,用于多分支的情况

例如:要求根据用户输入的月份(1到12之间的整数),输出该月份的英文缩写

如果用if语句就太过于繁琐,这时我们就可以选择switch语句,代码为:

int main() {
    int month;
    printf("请输入月份(1-12): ");
    scanf("%d", &month);

    switch(month) {
        case 1:
            printf("January\n");
            break;
        case 2:
            printf("February\n");
            break;
        case 3:
            printf("March\n");
            break;
        case 4:
            printf("April\n");
            break;
        case 5:
            printf("May\n");
            break;
        case 6:
            printf("June\n");
            break;
        case 7:
            printf("July\n");
            break;
        case 8:
            printf("August\n");
            break;
        case 9:
            printf("September\n");
            break;
        case 10:
            printf("October\n");
            break;
        case 11:
            printf("November\n");
            break;
        case 12:
            printf("December\n");
            break;
        default:
            printf("输入的月份不在1到12之间。\n");
    }

    return 0;
}

在switch语句中“case”就像是进入分支语句的入口,直到遇到“break”才能出程序,“default”表示除了case以外的其他所有情况

1.4多组数据输入

      有很多时候,我们需要解决的问题不单单是只用输入一组数据就能解决的,此时我们该如何解决呢?

    例如:狐狸想知道他多次考试情况,请帮他判断,(0~60不及格、60~80通过、80~100优秀)

这里我们不知道要输入多少组数据,因此循环的次数我们也不知道,看似无法解决问题。但是只要我们能运用while循环while((scanf“%d”,&a)!=EOF),他的意思是直到输入结束语句以后,程序才结束,代码如下:


#include <stdio.h>
int main()
{
	int gra = 0;
	printf("请输入小狐狸的分数:");
	while(scanf("%d", &gra)!=EOF)
	{
		if (gra < 60)
			printf("不及格\n");
		else if (gra >= 60 && gra < 80)
			printf("及格\n");
		else if (gra >= 80 && gra <= 100)
			printf("优秀\n");
		else
			printf("输入错误\n");
	}
	return 0;

}

输出的结果为:

1.5附加

在选用if语句时,if(条件)如果我们需要判断a=520,我们要在括号里输入a==520,这里“==”两个等号才表示判断是否等于,因此为了程序输入不出错,我们写类似的判断时,写if(520==a)会更好一些

以上就是我对于C语言中的分时语句学习总结,大家有不懂的可以随时和我探讨,感谢观看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值