一、分支语句(if switch)
语法结构:
if(表达式)
语句;
if (表达式)
语句1:
else
语句2;
//多分支
if(表达式)
语句1;
else if (表达式)
语句2;
else
语句3;
示例代码:
int main()
{
int age = 0;
printf("输入你的年龄:");
scanf_s("%d", &age);
if (age < 18)
printf("未成年");
else if (18 <= age && age < 24)
printf("青少年");
else if (24 <= age && age < 60)
printf("中年");
else
printf("老年");
return 0;
}
另一种逻辑:
int main()
{
int age = 0;
printf("输入你的年龄:");
scanf_s("%d", &age);
if (age < 18)
printf("未成年");
else
{
if (18 <= age && age < 24)
printf("青少年");
else if (24 <= age && age < 60)
printf("中年");
else
printf("老年");
}
return 0;
}
注意条件如果成立,要执行多条语句,应该使用代码块
int main()
{
if (表达式)
{
语句列表1;
}
else
{
语句列表2;
}
return 0;
}
if-else的匹配原则:
在C语言中,if
和else
语句的匹配遵循一个简单的规则:每个else
都与最近的尚未匹配的if
配对。这种配对机制是基于代码的结构,特别是基于代码块的嵌套层次来确定的。
这里有一些关键点来帮助理解:
- 基本结构:
if
语句可以单独存在,但else
语句必须跟随一个if
。if
语句后面可以紧跟一个else
。 - 匹配原则:当有多个
if
和else
混合时,每个else
都与最近的尚未配对的if
匹配。 - 代码块:使用大括号
{}
可以创建一个代码块,它可以帮助明确if-else
结构。如果没有大括号,if
或else
仅与紧随其后的一条语句相关联。 - 嵌套:
if
语句可以嵌套,即在一个if
或else
代码块内部可以有另一个if-else
结构。
下面是一些示例来说明这些原则:
if (condition1)
statement1; // 只有当condition1为真时执行
else if (condition2)
statement2; // 只有当condition1为假且condition2为真时执行
else
statement3; // 当condition1和condition2都为假时执行
if (condition4) {
if (condition5)
statement4;
else
statement5; // 这个else匹配最近的未配对的if,即condition5的if
}
在第二个例子中,内部的else
与内部的if
匹配,而不是与外部的if
匹配。使用大括号可以帮助清晰地定义这种嵌套结构。
if-else的常用方法:
- 基本语法:
if (condition) {
// 当条件为真时执行
} else {
// 当条件为假时执行
}
示例:检查一个条件是否成立。
- 条件表达式:
int a = 10, b = 20;
if (a < b) {
// 当a小于b时执行
}
示例:比较两个变量的值。
- 代码块:
if (a > b) {
printf("a is greater than b");
a++;
} else {
printf("b is greater or equal to a");
b++;
}
示例:使用代码块执行多条语句。
- 嵌套if-else结构:
if (a > b) {
if (a > 100) {
// a大于b且大于100时执行
} else {
// a大于b但不大于100时执行
}
} else {
// a小于或等于b时执行
}
示例:展示如何使用嵌套if-else
处理多层条件。
- 逻辑清晰:
if (a > 0) {
// a为正数时执行
} else {
// a为0或负数时执行
}
示例:确保条件清晰且容易理解。
- else if的使用:
if (a == 0) {
// a为0时执行
} else if (a < 0) {
// a为负数时执行
} else {
// a为正数时执行
}
示例:使用else if
处理多种不同的情况。
- 布尔逻辑的使用:
if (a > 0 && b > 0) {
// a和b都为正数时执行
}
示例:使用逻辑运算符组合多个条件。
- 避免条件模糊:
int x = 5;
if (x > 0 && x < 10) {
// x大于0且小于10时执行
}
示例:使用明确的条件避免歧义。
- 代码格式和风格:
if (a > b) {
printf("A");
} else {
printf("B");
}
示例:保持一致的代码格式和风格。
- 错误处理:
int result = someFunction();
if (result == ERROR_CODE) {
// 错误处理
} else {
// 正常执行
}
示例:使用if-else
处理函数返回的错误代码。
以上是针对每个关键点的示例代码,希望这些示例能帮助您更好地理解和使用if-else
语句。