在编写计算机程序的过程中,我们经常遇到需要根据不同情况进行选择执行某段代码的需求。此外,有时我们还需要反复执行某个或某些任务。为了满足这类需求,C 语言提供了多种分支循环语句,帮助我们在各种复杂的逻辑条件下编写代码。本文将详细介绍 C 语言的分支循环语句及其用法。
一、分支语句
1. if 语句
if 语句是 C 语言中最基本的条件判断语句。它的基本用法如下:
if (condition)
{
// do something
}
其中,condition 是一个表达式,用于表示条件。如果条件成立(返回非零值),则执行大括号中的代码;否则,忽略大括号中的内容。注意,C 语言中 0 表示 false,其他值表示 true。
例如,下面的代码会在 a 大于 b 的情况下执行 some_function():
if (a > b)
{
some_function();
}
2. if-else 语句
有时候我们需要在条件不成立时执行另一段代码,可以使用 if-else 语句:
if (condition)
{
// do something
}
else
{
// do something else
}
例如,下面的代码会在 a 大于 b 时执行 some_function(),否则执行 another_function():
3. if-else if-else 语句
if (a > b)
{
some_function();
}
else
{
another_function();
}
有时候我们需要根据多个条件进行选择,可以使用 if-else if-else 语句:
if (condition1)
{
// do something
}
else if (condition2)
{
// do something else
}
else
{
// do another thing
}
例如,下面的代码会根据成绩 score 输出不同的结果:
if (score >= 90)
{
printf("A\n");
}
else if (score >= 80)
{
printf("B\n");
}
else if (score >= 70)
{
printf("C\n");
}
else
{
printf("D\n");
}
需要注意的是,此时程序将按顺序判断多个条件,只要有一个条件成立,就会执行对应的代码,并跳过后面的条件判断。
4. switch-case 语句
当我们需要根据一个整数或字符变量的值进行多路分支选择时,使用 if-else if-else 语句会显得比较繁琐,此时可以使用 switch-case 语句简化代码:
switch (expression)
{
case constant1:
// do something
break;
case constant2:
// do something else
break;
// ...
default:
// do another thing
}
其中,expression 必须是一个整数或字符类型的表达式。程序将查找与 expression 值相匹配的 case 标签,然后执行对应的代码。如果没有匹配的 case 标签,会执行 default 段的代码。
注意,执行完一个 case 段后,需要用 break 语句跳出 switch 结构,否则会继续执行下一个 case 段的代码。下面是一个打印星期几的例子:
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 day\n");
}
二、循环语句
1. for 循环
for 循环是一种条件循环语句。其基本格式如下:
for (initialization; condition; increment)
{
// do something
}
其中,initialization 是循环变量的初始化表达式;condition 是循环条件表达式;increment 是循环变量的增量表达式。
例如,下面的代码将打印 1 到 10 的整数:
for (int i = 1; i <= 10; i++)
{
printf("%d\n", i);
}
2. while 循环
while 循环也是一种条件循环语句,其基本格式如下:
while (condition)
{
// do something
只要条件不变为 false(零值),循环就会一直执行,直到条件不满足为止。
例如,下面的代码将计算 a 和 b 的最大公约数:
while (a != b)
{
if (a > b)
a = a - b;
else
b = b - a;
}
printf("GCD is %d\n", a);
3. do-while 循环
do-while 循环是一种后测试条件循环语句,即先执行循环体,然后判断条件是否满足。其基本格式如下:
do
{
// do something
} while (condition);
注意,do-while 语句后面的分号不能省略。
例如,下面的代码将读入一些整数,计算它们的和,直到输入为 0 为止:
int sum = 0, value;
do
{
scanf("%d", &value);
sum += value;
} while (value != 0);
printf("Sum is %d\n", sum);
总结
本文详细介绍了 C 语言中的分支循环语句,有了这些语句,我们就可以实现各种不同的逻辑条件控制。通过高效地使用分支循环语句,我们的程序可以处理更多种情况,满足复杂的需求,同时保持代码的整洁和可读性。学会穿越逻辑迷宫,是成为优秀程序员的第一步!