C语言:五种分支语句与三种循环语句 基础知识详解
五种分支语句(Branching statements)
1.单分支语句
单分支语句:当满足特定条件时,执行一段代码。通常使用if语句来实现单分支逻辑。如果条件为真,则执行if语句块中的代码;否则,跳过if语句块,继续执行后续的代码。
格式:if(布尔表达式){
语句 // 布尔表达式为真时执行语句
}
代码:
#include
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
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
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
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
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
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
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
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
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
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
}
while (i <= 5);
printf("\n");
return 0;
}
上述代码,用于打印数字。
输出结果:1 2 3 4 5