序(一些闲话)
- 我希望我的语言不要像专业书那样让人眼花缭乱,所以当我解释语法时,我会尽量避免使用太多专业术语,让说明更容易理解。我会用通俗易懂的语言来解释,而不是像专业书籍那样让人感到困惑。
- 本人计划通过文章分享C语言的核心知识点和学习心得。鉴于仍处于学习阶段,文章中可能包含错误或片面观点,因此诚挚欢迎读者的指正。期望与读者共同学习、进步,最终成为入门C语言。
- 这个系列文章旨在简要介绍每个C语言知识点,希望读者(也包括自己)能对C语言有一个基本的了解。所以每一步尽量非常详尽 .
C语言大师之路:从零到王者/新手入门(3)选择语句
介绍
这三个图对应着C语言的三种结构
从这三张图我们可以清晰看出,在C语言中,程序的执行结构主要分为三种:顺序结构、分支结构和循环结构。这三种结构是编程语言设计的基础,它们共同构成了程序的基本执行流程。
-
顺序结构
顺序结构是指程序按照代码的书写顺序依次执行。在没有选择结构和循环结构参与的情况下,程序默认按照顺序结构执行。顺序结构是编程的基础,也是计算机内在逻辑的基础。 -
选择结构(分支结构)
选择结构是指根据条件判断的结果,选择执行不同的代码分支。 -
循环结构
循环结构是指根据条件判断的结果,重复执行某段代码。
在计算机中,在没有分支和循环结构参与的情况下,所有的程序都是默认的顺序结构,即程序是顺序执行的,所以顺序结构没有必要单独讲解,因为它是默认的执行方式。但它是编程和计算机内在逻辑的基础。在实际编程中,我们通过结合顺序结构、选择结构和循环结构,来实现各种复杂的程序功能。
一、分支结构
我们知道C语言的执行方式是自上而下的,但有时候 我们会面临一种二选一的需求。在日常生活中,我们经常需要在不同的选项之间做出选择。例如,在处理文件时,我们可能会面临保存或不保存的选择。如果选择保存,计算机将保存文件并退出;如果选择不保存,计算机将执行不同的处理操作。这种根据不同情况采取不同行动的需求,在编程中也得到了体现。
在C语言中,程序的执行通常是自上而下的顺序执行的。然而,在某些情况下,我们可能需要根据特定条件来决定执行不同的代码块。面对这种"二选一"的需求,我们可以用选择语句来表示。
首先我们来回顾一下运算符:
运算符号 | 说明 | 示例代码 | 结果 |
---|---|---|---|
> (大于) | 若X大于y返回真(1)否则为(0) | 50 > 5 | 1 |
> = (大于等于) | 若X大于y返回真(1)否则为(0) | 50 > = 50 | 1 |
< (小于) | 若X大于y返回真(1)否则为(0) | 50 < 5 | 0 |
< = (小于等于) | 若X大于y返回真(1)否则为(0) | 50 < = 5 | 0 |
== (等于) | 若X等于y返回真(1)否则为(0) | 50 = = 5 | 0 |
!= (不等于) | 若X不等于y返回真(1)否则为(0) | 50 != 5 | 1 |
1.if语句
- if语句的的格式
- 表达式:返回一个bool值,真或假
- if()括号中的表达式如果为真,就执行if内的语句;
- 如果为假,则跳过if ,执行后面的语句。
- 那么什么是真?什么是假呢?在计算机中 1代表真 0代表假。
下面我们来看一段示例代码
请从键盘录入一个整数a,如果小于0,则将其变为0:最后打印a。
#include <stdio.h>
int main() {
int a; // 初始化变量a
printf("请输入变量a: "); // 提示用户输入
scanf("%d", &a); // 输入变量a
if (a < 0) { // 判断a是否小于0
a = 0; // 如果a小于0,则将a赋值为0
}
printf("a = %d\n", a); // 输出变量a
return 0; // 程序结束
}
这里笔者输入了一个 -6 打印为0
2.if else语句
其中 if为如果,else为否则。根据条件判断并执行不同的语句。
- if else语句的的格式
上述代码意为:
如果表达式为真 那么就执行语句块1的操作,否则就执行语句块2的操作。
下面我们来看一段示例代码
请从键盘录入一个整数a,如果是2的倍数,打印 “是偶数” 否则就打印 “是奇数”
#include <stdio.h>
int main() {
int a;//定义变量a
printf("请输入一个整数: ");
scanf("%d", &a);
if (a % 2 == 0) {//判断a是否为偶数
printf("是偶数\n");
} else {
printf("是奇数\n");
}
return 0;//程序结束
}
这里笔者输入了一个整数 5 打印为奇数(如果输入偶数的话 则输出是偶数 )
读者可以自己一试
- 针对单if判断格式中,无论执行哪个操作 因为程序是顺序执行,必须要判断所有表达式的真假 在这点上 时间上显得非常浪费。
- 但是if-else语句只能判断两个分支,无法应对多种结果的情况。
- 于是出现了else if 语句
3. else if语句
else if语句可以多个同时使用 构成多个分支。
- else if语句的的格式
上述代码意为:
如果表达式1满足条件 则执行语句块1;
如果表达式2满足条件 则执行语句块2;
再然后如果条件都不满足,则执行语句块n;
含义为: 从上往下依次求值表达式1、2、当遇到真的结果时,则执行对应的语句块描述的操作,并停止对后续表达式的判断.如果所有表达式都不成立(可省略表示为什么都不做),则执行所有条件为假的代码块,然后继续执行后续代码。
注 一旦遇到能够成立的判断条件,则不再执行其他的语句块,最终只可以有一个语句块被执行。
下面我们来看一段示例代码
请从键盘录入一个分数score 打印出相对应的成绩
100-90 为 Class A
89-80 为 Class B
79-60 为 Class C
60以下 为 Class D
#include <stdio.h>
int main() {
int score;
printf("请输入一个分数: ");
scanf("%d", &score);
if (score >= 90 && score <= 100) {
printf("Class A\n");
} else if (score >= 80 && score <= 89) {
printf("Class B\n");
} else if (score >= 60 && score <= 79) {
printf("Class C\n");
} else if (score < 60 && score >= 0) {
printf("Class D\n");
} else {
printf("输入的分数无效\n");
}
return 0;
}
这里笔者输入了一个整数 99 打印为Class
读者可以自己一试
C语言虽然不限制else if能够处理的分支数量,但当分支过多时,用if else处理不太方便,而且容易出现else if配对出错的问题。所以诞生出了switch语句
4. switch语句
switch语句也是一种分支结构语句,用来代替简单的,拥有多个分支的if-else语句。
含义:首先求表达式的值,然后依次与下面各个case的表达式做比较,如符合某个表达式,则执行对应语句以及后续所有的语句。
是一种分支结构,用来代替简单的,拥有多个分支的 if else 语句
第一种为switch的基本结构,从上到下将表达式依次与case的常量进行匹配,第一次匹配成功后,后面的语句顺序执行 不再进行匹配。
第二种则多了一个default,如果前面所有的case都不符合要求,那么会默认执行default的语句;
第三种,当遇到了第一个匹配的case后,执行完对应的语句会直接跳过,不再执行后面的case语句
break:专门跳出switch语句,一旦遇到break,就不再执行swtich的任何语句,包括当前分支中的语句和其他分支的语句。
即遇到break代表整个switch结束,执行switch的后续代码。
注 case后面必须为一个整数,或是结果为整数的表达式,但不能包含任何变量。(如case 9.5 或case a)就是错误的。
default不必须,当没有default时,如果所有的case匹配失败,那么就什么都不执行。
下面我们来看一段示例代码
请从键盘录入一个分数score 打印出相对应的成绩
100-90 为 Class A
89-80 为 Class B
79-60 为 Class C
60以下 为 Class D
#include <stdio.h>
int main() {
int score;
printf("请输入一个分数: ");
scanf("%d", &score);
switch (score / 10) {
case 10:
case 9:
printf("Class A\n"); // 打印 "Class A",表示分数在90到100之间
break; // 跳出switch语句,不再执行后续的case
case 8: // 如果score / 10的结果是8,即分数在80到89之间
printf("Class B\n"); // 打印 "Class B"
break; // 跳出switch语句
case 7: // 如果score / 10的结果是7,即分数在70到79之间
case 6: // 如果score / 10的结果是6,即分数在60到69之间
printf("Class C\n"); // 打印 "Class C",表示分数在60到79之间
break; // 跳出switch语句
default: // 如果score / 10的结果不在上述任何一种情况,即分数在60以下
printf("Class D\n"); // 打印 "Class D"
break; // 跳出switch语句
}
return 0; // 返回0,表示程序正常结束
}
这里笔者输入了一个整数 99 打印为Class
读者可以自己一试
标签:语句,零到,执行,else,新手入门,score,printf,C语言,Class From: https://blog.csdn.net/2302_79751907/article/details/140648121意气风发,漫卷疏狂
学习是成长的阶梯,每一次的积累都将成为未来的助力。我希望通过持续的学习,不断汲取新知识,来改变自己的命运,并将成长的过程记录在我的博客中。如果我的博客能给您带来启发,如果您喜欢我的博客内容,请不吝“点赞”、“评论”和“收藏”,也欢迎您关注我的博客。
您的支持是我前行的动力。听说点赞会增加自己的运气,希望您每一天都能充满活力!
愿您每一天都快乐,也欢迎您常来我的博客。我叫意疏,希望我们一起成长,共同进步。
我是意疏 下次见!