引言
C语言是一种功能强大的编程语言,广泛应用于系统编程、嵌入式开发和应用程序开发中。C语言的控制结构,特别是分支和循环语句,对于编写逻辑清晰、功能强大的程序至关重要。本文将详细介绍C语言中的分支语句( if 、 switch )和循环语句( for 、 while 、 do-while )。
分支语句
分支语句允许程序根据条件执行不同的代码块。C语言中主要有两种分支语句: if 语句和 switch 语句。
1. if 语句 if 语句是最基本的分支结构,用于根据条件执行不同的代码块。其基本语法如下:
if (condition)
{
// 当条件为真时执行
}
else
{
// 当条件为假时执行
}
if 语句还可以嵌套,即在一个 if 语句内部可以包含另一个 if 语句,这样可以构建更复杂的逻辑判断。
1)在C语言里,if if if
和 if else if else if
是两种不同的条件判断结构,它们的区别主要体现在以下几个方面:
执行逻辑
if ,if ,if
:各个 if
条件是相互独立的,程序会依次对每个 if
条件进行判断,无论前面的 if
条件是否成立,后面的 if
条件都会进行判断。
if ,else if ,else if
:这是一个整体的条件判断链,程序会依次判断条件,一旦某个 if
或者 else if
条件成立,就会执行对应的代码块,并且跳过后续的 else if
和 else
条件判断。
使用场景
if ,if ,if:适用于多个条件之间相互独立,需要分别判断的场景,每个条件的判断结果都可能影响程序的执行。
if ,else if ,else if:适用于多个条件互斥的场景,只需要根据满足的第一个条件执行相应操作。
性能差异
if ,if ,if:由于每个条件都要判断,在条件较多且前面条件经常成立的情况下,会有不必要的判断开销。
if ,else if ,else if:一旦某个条件成立,后续条件就不再判断,在条件互斥的场景下能提高性能。
2. switch 语句 switch 语句用于根据变量的值选择执行不同的代码块。其基本语法如下:
switch (expression)
{
case value1:
// 当expression的值等于value1时执行
break;
case value2:
// 当expression的值等于value2时执行
break;
// 可以有多个case
default:
// 当expression的值与所有case都不匹配时执行
}
在C语言中, switch 语句中的 case 关键字后必须跟一个常量表达式。这个常量表达式通常是整型或字符型(即 int 、 char 或它们的枚举类型),因为 switch 语句的设计初衷是用来比较这些类型的值。switch 语句中的 break 关键字用于终止当前 case 的执行,并跳出 switch 语句。如果没有 break ,程序会继续执行下一个 case ,直到遇到 break 或 switch 语句结束,包括default也会执行,这种现象称为“贯穿”。
循环语句
循环语句允许程序重复执行一段代码,直到满足特定条件。C语言中主要有三种循环语句: for 循环、 while 循环和 do-while 循环。
1. for 循环 for 循环是一种先判断后执行的循环结构,其基本语法如下:
for (initialization; condition; increment)
{
// 循环体
}
• initialization :初始化语句,通常用于声明和初始化循环变量。• condition :循环条件,当条件为真时继续执行循环体。• increment :增量语句,用于更新循环变量。
2. while 循环 while 循环也是一种先判断后执行的循环结构,其基本语法如下:
while (condition)
{
// 循环体
}
• condition :循环条件,当条件为真时继续执行循环体。
3. do-while 循环 do-while 循环是一种先执行后判断的循环结构,其基本语法如下:
do {
// 循环体
} while (condition);
• condition :循环条件,当条件为真时继续执行循环体。 do-while 循环至少执行一次循环体,因为循环条件的判断是在循环体执行之后进行的。
示例
下面是一个使用分支和循环语句的简单示例,用于计算1到10的累加和:
#include <stdio.h>
int main()
{
int sum = 0;
for (int i = 1; i <= 10; i++)
{
sum += i;
}
printf("Sum: %d\n", sum);
int number;
printf("Enter a number (1-10): ");
scanf("%d", &number);
switch (number)
{
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;
default:
printf("Number is not 1 or 2\n");
}
int a = 10;
do
{
printf("%d ", a);
a--;
} while (a > 0);
return 0;
}
总结分支和循环语句是C语言中非常重要的控制结构,它们使得程序能够根据不同的条件执行不同的代码块,以及重复执行一段代码。通过合理使用这些语句,可以编写出逻辑清晰、功能强大的程序。掌握这些基本的控制结构对于学习C语言和进行编程实践至关重要。