目录
开篇
当谈到编程中的循环和分支语句时,我们通常指的是控制结构,它们可以帮助我们根据条件执行不同的代码块,或者重复执行一段代码。以下是一些常见的循环和分支语句:
分支语句 | 循环语句 |
if-else | do-while |
if-else if-else | while |
switch | for |
分支语句
if-else语句
-
什么是if-else
if-else就是由if和else组成的分支语句,其中if语可以单独使用,else必须配合if使用;
-
语法
if(判断条件)
{
//运行代码
}
else
{
//运行代码
}
在if语句后要写入判断的条件并用括号括住,如果if语句的判断条件满足则i会执行f语句的代码,如果不满足则就会进入到else语句执行else语句的代码;
-
代码案例
int Age = 0;
printf("请输入年龄");
scanf("%d",&Age);
if(Age<18)
{
printf("未满18岁");
}
else
{
printf("已满18岁");
}
-
运行结果
-
案例分析
这段代码是年龄判断代码,代码定义了Age整型变量用来储存年龄,首先输入年龄进入if-else语句进行判断。
if语句的判断条件是,如果满足Age<18则会进入if语句,输出"未满18岁",如果不满足Age<18则会进入else语句,输出"已满18岁";
if-else if-esle语句
-
什么是if-else if-esle
是在if-else语句的基础上增加一个else if语句,else if语句一般都写在if语句和else语句中间,相当于多分支语句;
-
语法
if(判断语句)
{
//运行代码
}
else if(判断语句)
{
//运行代码
}
else if(判断语句)
{
//运行代码
}
.
.
.
else
{
//运行代码
}
if-else if-esle语句从上到下去执行,首先会先判断if语句,如果if语句的条件不满足的情况下,会往下执行else if语句,判断是否满足else if语句,如果满足则会执行else if语句中的代码,执行后会跳出语句后面的语句不执行,如果不满足则会执行下一个else if 语句,当所有的else if语句都不满足则会执行else语句;
-
代码案例
float weight, height, bmi;
printf("请输入体重(公斤):");
scanf("%f", &weight);
printf("请输入身高(米):");
scanf("%f", &height);
bmi = weight / (height * height);
printf("BMI值为: %.2f\n", bmi);
if (bmi < 18.5)
{
printf("体重过轻。\n");
}
else if (bmi < 24.9)
{
printf("体重正常。\n");
}
else if (bmi < 29.9)
{
printf("体重过重。\n");
}
else
{
printf("肥胖。\n");
}
-
运行结果
-
案例分析
这段代码是BMI指数的判断的代码,代码定义了三个单精度浮点数分别是weight,、height、bmi,首先输入体重和身高,接着计算BMI值,使用公式:BMI = weight / (height * height),然后进入if-else if-else语句判断。
if语句的判断条件是,如果满足bmi<18.5则会进入if语句,输出"体重过轻",如果不满足则会往下执行else if语句判断条件,
满足bmi < 24.9,输出"体重正常",
满足bmi < 29.9,输出"体重过重",
如果else if语句都不满足则会进入else语句,输入出“肥胖”;
switch语句
-
什么是switch语句
相对与前面两种分支语句,switch语句更像是选择语句,它的主要用途是根据不同的条件选择性地执行不同的代码块。它通常用于多个条件的判断;
-
语法
switch(整形常量判断条件)
{
case 整形常量:
//运行代码
break;
case 整形常量:
//运行代码
break;
.
.
.
default:
//运行代码
break;
}
switch语句是从上到下执行代码,首先是判断的整形常量进入switch语句的第一个case语句(case语句和其他的结尾略有区别,它是已":"冒号结尾,在写case语句时要注意),判断是否和它后面的整数常量相同,如果相同那么他就会运行该语句的代码,如果不相同则会继续到下一个case语句(注意!!如果想在执行完成一个case跳出switch语句,那么必须在case语句结束前必须加入break函数进行跳出,不然它会继续执行下一个case语句),当不满足所有的case语句那么就会default语句中的代码(在switch语句中不一定要有default语句);
-
代码案例
int choice;
printf("请输入一个数字(1-3): ");
scanf("%d", &choice);
switch(choice) {
case 1:
printf("选择了第一种情况\n");
break;
case 2:
printf("选择了第二种情况\n");
break;
case 3:
printf("选择了第三种情况\n");
break;
default:
printf("无效的选择\n");
}
-
运行结果
-
案例分析
这段代码定义了choice整形变量,首先提示用户输入一个数字,然后根据输入的数字执行不同的操作;
如果输入的是 1则会进入第一个case语句,输出"选择了第一种情况";
如果输入的是 2则会进入第二个case语句,输出"选择了第二种情况";
如果输入的是 3则会进入第三个case语句,输出"选择了第三种情况";
如果输入的是其他数字不满足所有的case则会进入default语句,输出"无效的选择";
上面介绍了大部分常用的分支语句,接下来介绍常用的循环语句
循环语句
while语句
-
什么是while语句
while语句是一种在条件为真时重复执行代码块的循环语句。主要是用于需要重复完成的任务上;
-
语法
while(判断条件)
{
//运行代码
}
在while语句中, 判断条件是一个表达式,它用于判断是否继续执行循环。如果判断条件为真,则执行循环体,然后再次检查 判断条件。如果 判断条件 为假,则退出循环,继续执行循环之后的代码。
-
代码案例
int sum = 0;
int i = 1;
while (i <= 10) {
sum += i;
i++;
}
printf("从 1 加到 10 的结果是: %d\n", sum);
-
运行结果
-
案例分析
这段代码使用while循环来计算从 1 加到 10 的结果。定义sum,i两个整形变量,sum变量用于保存总和,i变量用于迭代从 1 到 10 的每个数字。在每次循环迭代中,将当前的i变量加到sum变量中,然后递增i变量的值。循环会在i变量大于 10 时结束;
do-while语句
-
什么是do-while语句
简单来说就是先do再while,先do就是先执行一次do语句中的代码,再while就是当do语句里的代码运行完成后判断一下判断条件是否为真,如果为判断条件为真则再次执行do语句中的代码,如果为假就结束do-while循环;
-
语法
do
{
// 运行代码
} while (判断条件);
在这个语法中,首先执行do语句中的代码,然后检查条件。如果条件为真,则继续执行循环,否则循环结束;
do-while循环适用于需要确保循环体至少被执行一次的情况,无论条件是否满足;
-
代码案例
int i = 1;
do
{
printf("第%d次\n", i);
i++;
} while (i <= 5);
-
运行结果
-
案例分析
这段代码用do-while语句输出循环次数,首先定义了一个整形变量i,然后代码先执行一次do语句中的代码,然后检查判断条件i<=5是否为真,如果为真就执行一次循环输出循环次数,如果不满足判断条件i<=5则结束循环;
for语句
-
什么是for语句
for语句相对前面两个循环语句,for语句允许你初始化变量,设置循环的终止条件,以及定义每次迭代后要执行的操作。
-
语法
for (初始化; 条件; 更新)
{
// 运行代码
}
for语句中的分为初始化变量,判断条件,条件更新方式,其中:
初始化:在进入循环之前执行的语句。通常用于初始化循环控制变量;
判断条件:在每次循环迭代开始之前检查的表达式。如果条件为真,则执行循环体;否则循环结束;
更新:在每次循环迭代结束之后执行的语句。通常用于更新循环控制变量的值,以便控制循环的终止;
-
代码案例
int sum = 0;
for (int i = 1; i <= 5; i++)
{
sum += i; // 将当前的 i 加到 sum 中
}
printf("从 1 加到 5 的结果是: %d\n", sum);
-
运行结果
-
案例分析
这段代码用for循环计算从 1 加到 5 的结果,定义了一个整形变量sun储存结果,循环控制变量i被初始化为 1,每次循环迭代增加 1,直到i大于 5 时循环结束。在每次循环迭代中,将当前的i加到sum中,最后输出结果。
结尾
以上是我对循环分支语句这部分内容的个人见解。由于这是我第一次撰写文章,编辑过程中可能略显粗糙,存在部分地方表述不够准确或不够详尽之处。如各位在阅读过程中发现任何问题或不足,请不吝指正,您的宝贵意见对我而言将是莫大的帮助。非常感谢您能阅读至此。