欧克今天直接进入正题
流程控制主要有三种
顺序,选择,循环,任何一个程序都是这三种构成的
1. 顺序结构:程序按照语句的先后顺序依次执行。
2. 选择结构:
- if 语句:根据条件的真假决定执行不同的代码块。
- if-else 语句:在 if 条件为假时执行 else 后的代码块。
- if-else if-else 语句:用于处理多个条件的判断。
- if语句:if语句用于根据条件的真假来执行不同的代码块。语法如下:
if (条件表达式) {
// 如果条件为真,执行这里的代码
} else {
// 如果条件为假,执行这里的代码
}
例如:
int a = 10;
if (a > 5) {
printf("a大于5\n");
} else {
printf("a小于等于5\n");
}
- 三元运算符:三元运算符用于根据条件的真假来返回不同的值。语法如下:
条件表达式 ? 表达式1 : 表达式2
如果条件表达式为真,则返回表达式1的值;如果条件表达式为假,则返回表达式2的值。 例如:
int a = 10;
int b = (a > 5) ? 1 : 0;
printf("b的值为%d\n", b);
如果a大于5,则b的值为1;否则b的值为0。
-switch
语句是 C 语言中的一种条件语句,用于根据不同的条件执行不同的代码块。它的基本语法如下:
switch (expression) {
case constant1:
// 代码块1
break;
case constant2:
// 代码块2
break;
case constant3:
// 代码块3
break;
default:
// 默认代码块
}
expression
是要进行匹配的表达式或变量,必须是整型,而且不能出现变量case
后面跟着的常量值用于匹配expression
的值。如果匹配成功,则执行相应的代码块。如果匹配失败,程序将继续匹配下一个case
。default
是一个可选的语句块,当且仅当所有case
都不匹配时执行。default:,case:叫做标签,写错了也不会报错break
语句用于退出switch
语句,防止代码继续执行下面的case
或default
代码块。
下面是一个例子,演示了 switch
语句的用法:
#include <stdio.h>
int main() {
char grade = 'B';
switch (grade) {
case 'A':
printf("优秀\n");
break;
case 'B':
printf("良好\n");
break;
case 'C':
printf("及格\n");
break;
case 'D':
printf("不及格\n");
break;
default:
printf("未知成绩\n");
}
return 0;
}
在这个例子中,根据 grade
的值不同,switch
语句将执行不同的代码块并输出相应的结果。在这种情况下,输出结果为 "良好"。。
3. 循环结构:
- for 循环:通过初始化、条件判断和迭代步长来控制循环次数。
- while 循环:在条件为真时执行循环体。
- do-while 循环:先执行一次循环体,然后在条件为真时继续循环。
关系运算符和关系表达式
在 C 语言中,关系运算符用于比较两个操作数的关系,常见的关系运算符有:
1. == :等于。
2. != :不等于。
3. > :大于。
4. < :小于。
5. >= :大于等于。
6. <= :小于等于。
关系表达式是由关系运算符连接两个操作数所组成的表达式。关系表达式的结果为逻辑值,即“真”或“假”。在 C 语言中,“真”用非零值表示,“假”用零值表示。
例如:
int a = 5, b = 10;
// 以下是关系表达式的示例
int result1 = (a == b); // 结果为 0(假),因为 a 不等于 b
int result2 = (a < b); // 结果为 1(真),因为 a 小于 b
int result3 = (a >= b); // 结果为 0(假),因为 a 不大于等于 b
关系运算符和关系表达式在条件判断和控制流程中起着重要作用.
C语言中的逻辑运算符有三种:
- 逻辑与运算符(&&):用于判断两个条件是否同时为真,如果两个条件都为真,则返回真,否则返回假。
- 逻辑或运算符(||):用于判断两个条件是否至少有一个为真,如果至少有一个条件为真,则返回真,否则返回假。
- 逻辑非运算符(!):用于取反一个条件的值,如果条件为真,则返回假,如果条件为假,则返回真。
逻辑表达式是利用逻辑运算符来判断一个或多个条件的真假,从而决定程序的执行路径。在逻辑表达式中,可以使用比较运算符(如==、!=、>、<等)来比较两个值或变量的大小关系。逻辑表达式的结果为真(非零值)或假(零值)。
以下是一些逻辑表达式的例子:
- a > 10 && b < 20:判断a是否大于10并且b是否小于20。
- x == 0 || y != 0:判断x是否等于0或者y是否不等于0。
- !(x > 10):判断x是否不大于10。
在C语言中,逻辑表达式常用于if语句、while循环、for循环等控制结构中,用于判断条件是否成立,从而控制程序的执行流程。
循环结构
在 C 语言中,循环是一种控制结构,用于重复执行一段代码。常见的循环结构有三种: for 循环、 while 循环和 do-while 循环。
for 循环的一般形式为:
for (初始化表达式; 条件表达式; 更新表达式) {
// 循环体
}
while 循环的一般形式为:
while (条件表达式) {
// 循环体
}
例如:
int i = 0;
while (i < 5) {
printf("%d ", i);
i++;
}
在 while 循环中,先判断条件表达式,如果为真则执行循环体,执行完循环体后再次判断条件表达式,直到条件表达式为假时退出循环。
do-while 循环的一般形式为:
do {
// 循环体
} while (条件表达式);
例如:
int i = 0;
do {
printf("%d ", i);
i++;
} while (i < 5);
do-while 循环与 while 循环的区别在于, do-while 循环先执行一次循环体,然后再判断条件表达式,所以无论条件表达式最初是否为真,循环体至少会执行一次。
还有一个可以构成循环的语句叫goto
在 C 语言中, goto 语句用于无条件跳转到程序中的指定标签位置。
以下是一个简单的示例:
c 复制
#include <stdio.h>
int main() {
int num = 0;
start:
if (num < 5) {
printf("%d ", num);
num++;
goto start;
}
return 0;
}
然而,在实际的编程中, goto 语句的使用通常被认为是不好的编程习惯,因为它可能会使程序的逻辑变得混乱和难以理解,导致代码的可读性和可维护性降低。除非在极少数情况下,例如跳出多层嵌套的循环,否则一般不建议使用 goto 语句。