五种分支语句(Branching statements)
1.单分支语句
单分支语句:当满足特定条件时,执行一段代码。通常使用if语句来实现单分支逻辑。如果条件为真,则执行if语句块中的代码;否则,跳过if语句块,继续执行后续的代码。
格式:if(布尔表达式){
语句 // 布尔表达式为真时执行语句
}
代码:
#include<stdio.h> int main() { int a; scanf("%d", &a); if(a>10) printf("您输入的数字大于10“); return 0; }
上述代码,当输入的a值大于100时会输出”您输入的数字大于10“。
2.双分支语句
双分支语句:根据条件的真假,执行两个不同的代码块。通常使用if-else语句来实现双分支逻辑。如果条件为真,则执行if语句块中的代码;如果条件为假,则执行else语句块中的代码。
格式:if(布尔表达式){
语句1 // 布尔表达式为真时执行语句1
}
else{
语句2 // 语句1为假时执行语句2
}
代码:
#include<stdio.h> int main() { int num; printf("请输入一个数字:\n"); scanf("%d",&num); if(num%2 == 1) { printf("%d是一个奇数\n",num); } else { printf("%d是一个偶数\n",num); } return 0; }
上述代码,用于判断输入的数字是否为奇数。
3.多分支语句
多分支语句:一种根据不同的条件,执行多个代码块的语句结构。通常使用if-else if-else语句来实现多分支逻辑。if语句先进行条件判断,如果满足条件则执行相应的代码块,否则继续执行else if语句,直到找到满足条件的代码块,或者执行完所有的else if语句后,执行else语句块。
格式: if(布尔表达式1){
语句1 // 布尔表达式1为真时执行语句1
}
else if(布尔表达式2){
语句2 // 布尔表达式2为真时执行语句1
}
else{
语句3 // 布尔表达式1、2为假时执行语句3
}
代码:
#include<stdio.h> int main() { int a, b; scanf("%d %d", &a, &b); if (a > b) { printf("%d>%d", a, b); } else if (a == b) { printf("%d=%d", a, b); } else { printf("%d<%d", a, b); } return 0; }
上述代码,用于判断输入两个数字的大小关系。
4.嵌套语句
嵌套语句:指一个控制语句包含在另一个控制语句内部的情况。例如,在一个if语句块中嵌套了另一个if语句块。嵌套语句可以帮助我们更清晰的构建更复杂的逻辑。
格式: if(布尔表达式1){
语句1 // 布尔表达式1为真时执行语句1
if(布尔表达式2){
语句2 // 布尔表达式2为真时执行语句2
}else{
语句3 // 布尔表达式2为假时执行语句3
}
}
代码:
#include <stdio.h> int main() { int num = 10; if (num >= 0) { if (num == 0) { printf("Number is zero\n"); } else { printf("Number is positive\n"); } } else { printf("Number is negative\n"); } return 0; }
上述代码中,首先判断是否大于等于0,如果大于等于0,则继续判断是否等于0,如果等于0,则输出“Number is zero”;如果不等于0,则输出“Number is positive”,如果小于0,则输出“Number is negative”。
输出结果 : Number is positive
5.Switch语句
Switch语句:一种在某些编程语言中存在的条件语句,根据给定的表达式的值,执行对应的代码块。遇到break时整个语句会终止。
格式:switch(表达式){
case 1: 语句;break; //根据不同情况,有些break可以省略,是代码更简洁
case 2: 语句;break;
case 3: 语句;break;
... //可以有很多条case语句
default:语句 //default不是switch语句所必需的
}
代码:
#include <stdio.h> int main() { char day = 'M'; switch (day) { case 'M': printf("It's Monday\n"); break; case 'T': printf("It's Tuesday\n"); break; case 'W': printf("It's Wednesday\n"); break; default: printf("It's some other day\n"); break; } return 0; }
上述代码,不同的变量代表不同的输出结果。
输出结果 : It's Monday
三种循环语句 (Loop statement)
1. for循环
for循环:一种常用的控制流程语句,用于重复执行指定次数的一段代码。它由三个部分组成:初始化表达式、循环条件和循环迭代。
格式: for (初始化表达式; 循环条件; 循环迭代){
// 循环体
}
代码:
#include<stdio.h> int main() { int i; for(i = 1; i <= 10; i++) { if(i == 5) continue; printf("%d ",i); } return 0; }
输出结果:1 2 3 4 6 7 8 9 10
注意区分:
①continue的位置:
#include<stdio.h> int main() { int i = 1; while(i<=10) { if(i == 5) continue; printf("%d",i); i++; } return 0; }
输出结果:1234 (4后有闪烁的光标,一直进出循环的运行但不再打印4后的数字)
②continue和break:在循环中遇到break就停止后期的所有循环,是用于永久终止循环的;continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分,进行下一次循环的入口判断。
#include<stdio.h> int main() { int i; for (i = 1; i <= 10; i++) { if (i == 5) break; printf("%d ", i); } return 0; }
输出结果:1 2 3 4
2.while循环
while循环:一种在满足特定条件时重复执行一段代码的控制流程语句,具体循环次数在开始时不确定,循环条件在循环开始之前进行判断。
格式:while (循环条件){
// 循环体
}
代码 :
#include<stdio.h> int main() { int a,b; while(scanf("%d %d",&a,&b) != EOF) { printf("%d\n",a+b); } return 0; }
上述代码,用于求两数之和。
3.do-while循环
do-while循环:一种先执行循环体,然后在满足特定条件时重复执行一段代码的控制流程语句,该循环体至少被执行一次。
格式:do {
// 循环体
} while (循环条件);
代码 :
#include <stdio.h> int main() { int i = 1; do { printf("%d ", i); i++; } while (i <= 5); printf("\n"); return 0; }
上述代码,用于打印数字。
输出结果:1 2 3 4 5