C语言编程入门之选择语句
在C语言中,逻辑表达式用于进行逻辑运算,通常用于控制流语句(如if
、while
)中的条件判断。逻辑运算符主要有三个:&&
(逻辑与)、||
(逻辑或)和!
(逻辑非)。
1. 逻辑与(&&
)
逻辑与运算符用于检查两个条件是否同时为真。如果两个操作数均为真,结果为真;否则结果为假。
示例:
int a = 5;
int b = 10;
if (a > 0 && b > 5) {
printf("Both conditions are true.\n");
}
2. 逻辑或(||
)
逻辑或运算符用于检查至少一个条件是否为真。如果至少一个操作数为真,结果为真;如果两个操作数均为假,结果为假。
示例:
int a = 5;
int b = 3;
if (a > 0 || b < 0) {
printf("At least one condition is true.\n");
}
3. 逻辑非(!
)
逻辑非运算符用于取反一个条件。如果条件为真,结果为假;如果条件为假,结果为真。
示例:
int a = 0;
if (!a) {
printf("a is false (0).\n");
}
4. 逻辑表达式的组合
逻辑运算符可以组合使用,形成复杂的逻辑表达式。需要注意运算符的优先级,逻辑运算符的优先级较低。
示例:
int a = 5;
int b = 10;
int c = 15;
if ((a < b && b < c) || (a == 5)) {
printf("Condition is true.\n");
}
5. 短路评估
在使用逻辑运算符时,C语言采用短路评估策略:
- 对于
&&
,如果第一个操作数为假,后续操作数不会被评估。 - 对于
||
,如果第一个操作数为真,后续操作数也不会被评估。
示例:
int a = 5;
int b = 0;
if (b != 0 && (a / b) > 1) { // 不会执行 a / b,因为 b 为 0
printf("This won't print.\n");
}
6. 使用场景
逻辑表达式通常用于条件控制结构中,如if
、while
、for
等语句:
if (a > 0 && b > 0) {
// 执行某些操作
}
while (x < 10 || y > 5) {
// 循环操作
}
总结
- 逻辑表达式用于判断条件,主要有逻辑与(
&&
)、逻辑或(||
)和逻辑非(!
)。 - 逻辑表达式可以组合使用,并遵循短路评估策略。
- 这些表达式广泛应用于控制流语句中,帮助实现条件判断和循环控制。
在C语言中,if-else
语句用于根据条件执行不同的代码块。它是控制流语句中最常用的结构之一。
1. 基本语法
if
语句的基本语法如下:
if (条件) {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}
2. 示例
以下是一个简单的示例,判断一个数字是正数、负数还是零:
#include <stdio.h>
int main() {
int number;
printf("Enter a number: ");
scanf("%d", &number);
if (number > 0) {
printf("The number is positive.\n");
} else if (number < 0) {
printf("The number is negative.\n");
} else {
printf("The number is zero.\n");
}
return 0;
}
3. 多重条件
可以使用多个else if
来处理多个条件。只有第一个满足的条件块会被执行。
示例:
#include <stdio.h>
int main() {
int score;
printf("Enter your score: ");
scanf("%d", &score);
if (score >= 90) {
printf("Grade: A\n");
} else if (score >= 80) {
printf("Grade: B\n");
} else if (score >= 70) {
printf("Grade: C\n");
} else if (score >= 60) {
printf("Grade: D\n");
} else {
printf("Grade: F\n");
}
return 0;
}
4. 嵌套 if
语句
可以在一个if
或else
块内部嵌套另一个if
语句,以实现更复杂的条件判断。
示例:
#include <stdio.h>
int main() {
int age;
printf("Enter your age: ");
scanf("%d", &age);
if (age >= 18) {
printf("You are an adult.\n");
if (age >= 65) {
printf("You are a senior citizen.\n");
}
} else {
printf("You are a minor.\n");
}
return 0;
}
5. 注意事项
- 条件必须是布尔类型的表达式,结果为真(非零)或假(零)。
- 大括号
{}
是可选的,当只需要执行单条语句时,可以省略,但建议始终使用,以提高代码可读性。
示例(省略大括号):
if (number > 0)
printf("Positive\n");
else
printf("Non-positive\n");
6. 逻辑表达式
可以在if
条件中使用逻辑运算符(如&&
、||
、!
)组合多个条件:
if (number > 0 && number < 100) {
printf("Number is between 1 and 99.\n");
}
总结
if-else
语句用于根据条件执行不同代码块。- 可使用多个
else if
处理多重条件,并支持嵌套结构。 - 注意条件表达式的布尔值及使用大括号来提高代码可读性。
在C语言中,switch
语句用于根据变量的值选择执行不同的代码块。它通常用于替代多个if-else
语句,使代码更简洁和易于维护。
1. 基本语法
switch
语句的基本语法如下:
switch (表达式) {
case 常量1:
// 执行的代码块1
break;
case 常量2:
// 执行的代码块2
break;
// 可以有多个case
default:
// 默认情况下执行的代码
}
2. 示例
以下是一个示例,根据用户输入的数字输出对应的星期几:
#include <stdio.h>
int main() {
int day;
printf("Enter a number (1-7): ");
scanf("%d", &day);
switch (day) {
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
case 4:
printf("Thursday\n");
break;
case 5:
printf("Friday\n");
break;
case 6:
printf("Saturday\n");
break;
case 7:
printf("Sunday\n");
break;
default:
printf("Invalid input! Please enter a number between 1 and 7.\n");
}
return 0;
}
3. break
语句
break
语句用于终止switch
语句的执行,跳出switch
块。如果没有break
,程序将继续执行下一个case
的代码,这称为“贯穿”行为。
示例(没有break
):
int num = 2;
switch (num) {
case 1:
printf("One\n");
case 2:
printf("Two\n");
case 3:
printf("Three\n");
default:
printf("Default\n");
}
输出:
Two
Three
Default
4. default
语句
default
是可选的,用于处理所有未匹配的情况。如果没有case
匹配,default
中的代码将被执行。
5. 注意事项
switch
语句的表达式通常是整型(int
)或字符型(char
)。- 在某些情况下,
switch
语句不支持浮点数。 - 每个
case
后必须是一个常量表达式,不能是变量或计算结果。
6. 例外:多重匹配
可以为多个case
共享同一代码块:
int grade;
switch (grade) {
case 90:
case 91:
case 92:
case 93:
case 94:
case 95:
case 96:
case 97:
case 98:
case 99:
case 100:
printf("Grade: A\n");
break;
// 其他case...
}
总结
switch
语句提供了一种简洁的方法来选择执行代码块,基于一个表达式的值。- 使用
break
语句来避免“贯穿”现象。 default
用于处理所有未匹配的情况,适合处理多个常量的匹配。

10年软件开发经验,分享编程零基础入门教学文章视频,小项目从0到1开发迭代升级流程。 分享如何通过技术做出产品源源不断的进行盈利。关于我,学习更多编程知识。