专栏:《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语言中的分时语句学习总结,大家有不懂的可以随时和我探讨,感谢观看