C语言的分支和循环语句

C语言中有三种结构,他们分别是循环结构、分支结构、选择结构。今天我们来讲讲分支结构中的if和switch语句以及循环结构中的for、while和do...while语句。

if 语句

C语言中的if语句是一种用于条件执行的控制语句。当某个条件为真(true)时,if语句将执行一个或多个语句,否则将跳过这些语句。if语句通常被用于决策和流程控制等应用中。

if语句通常的语法形式如下:

if (condition)
{
   // 条件为真时执行的代码
}

其中,condition是一个逻辑表达式,如果计算结果为true,则执行括号内的语句。

如果需要在条件为false时执行另外一段代码,则可以使用else关键字:

if (condition)
{
   // 条件为真时执行的代码
}
else
{
   // 条件为假时执行的代码
}

同时,也可以通过多个if语句和else if语句来实现更复杂的条件判断:

if (condition1)
{
   // 条件1为真时执行的代码
}
else if (condition2)
{
   // 条件2为真时执行的代码
}
else
{
   // 所有条件均不满足时执行的代码
}

需要注意的是,if语句中的条件表达式必须为布尔类型,即只能为true或false。如果条件表达式返回的是一个非布尔类型的值,C语言会自动将其转换为布尔类型。如果条件表达式返回的是0(或NULL、'\0'等),则被认为是false;如果条件表达式返回的是非0值,则被认为是true。

switch语句

C语言中的switch语句是一种多分支的选择语句,用于通过输入的表达式的值来判断程序流程分支的走向,从而实现不同的操作。其基本语法如下:

switch(expression)
{
    case value1:
        // 对于expression的值等于value1的情况进行操作
        break;
    case value2:
        // 对于expression的值等于value2的情况进行操作
        break;
    ...
    default:
        // 对于expression的值与任何case中的值不匹配的情况进行操作
        break;
}

在使用switch语句时,需要注意以下几点:

  • 表达式可以是任何基本数据类型,包括整型、字符型和枚举型等。
  • case语句后面的值必须为常量,且不能重复,可以使用多个case语句处理相同的操作。
  • 每个case语句最后必须以break语句结束,否则程序会继续执行下去。
  • default语句是可选的,并非必须存在,但是当表达式的值不匹配任何一个case时,会执行default语句中的操作。
  • switch语句的代码块可以包含任何语句,包括其他的switch语句。

需要注意的是,由于switch语句的实现机制是通过跳转表来实现的,因此在switch语句中使用的表达式的值应该是有限的、离散的,并且不能引用指针类型。

while语句

C语言中的while语句是一种基本的循环语句,用于执行一段代码块,直到指定的条件不再满足为止。其基本语法如下:

while(condition)
{
    // 待执行的代码块
}

while语句的执行过程为:

  1. 首先判断condition是否为真,若为真,则继续执行while循环中的代码块;否则,跳出while循环,继续执行while循环之后的代码。
  2. 执行完代码块之后,再次判断condition是否为真,如为真,则继续执行代码块,如不为真,则跳出while循环,继续执行while循环之后的代码。
  3. 重复执行上述步骤,直到condition不再为真为止,跳出循环。

需要注意的是,在使用while语句时,应该保证条件都能够被终止,否则将会造成死循环。为了避免死循环的发生,通常在循环体内部要加上一些控制语句,例如break、continue等。

for语句

for语句与while语句相似,都是用于执行一段代码块,直到条件不再满足为止,不同的是for语句的循环变量的调整在前,while语句循环变量的调整在后。与while语句相比,for语句的语法比较简洁,更适合循环次数已知的情况。其基本语法如下:

for(初始化 ; 条件判断 ; 循环变量的调整)
{
    // 待执行的代码块
}

for语句的执行过程为:

  1. 初始化:在循环开始之前,初始化循环计数器或声明一个变量;
  2. 条件判断:在每次循环开始时判断循环条件是否为真,若为真则执行循环体,否则跳出循环;
  3. 循环变量的调整:在每次循环结束后调整循环计数器或变量的值;
  4. 执行循环体(待执行的代码块);
  5. 重复执行步骤2、3、4,直到循环条件为假为止。

下面是一个计算0~9累加和的for循环示例:

int sum = 0;
for(int i=0; i<=9; i++)
{
    sum += i;
}
printf("0~9的累加和为:%d\n", sum);

注:在C99标准中,for循环的初始化部分中可以定义变量,不一定要在循环外部预先定义。

do...while语句

C语言中的do while循环是一种基于条件循环的结构,它先执行一遍循环体,再检查循环条件是否成立,只要条件成立,就会继续执行循环体,直到循环条件不成立为止。do while循环的基本语法如下:

do
{
    // 待执行的代码块
}while(expression);

do while循环的执行过程为:

  1. 执行循环体(待执行的代码块);
  2. 判断循环条件(expression)是否为真,若为真则继续执行循环体,否则跳出循环。

下面是一个计算1~10累加和的do while循环示例:

int i = 1, sum = 0;
do
{
    sum += i;
    i++;
}while(i <= 10);
printf("1~10的累加和为:%d\n", sum);

需要注意的是,do while循环至少会执行一次循环体,即使循环条件一开始就不成立。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值