C语言中的分支和循环

C语言作为一种功能强大且灵活的编程语言之一,其中分支与循环语句是控制其程序流程的核心部分。通过分支语句可以实现条件判断和多路径的选择,而循环语句则用于重复执行其中的某段代码。


目录

一、C语言中的分支语句

  1. if 语句
  2. if-else 语句
  3. 多分支的 if-else if-else
  4. switch 语句

二、C语言中的循环语句

  1. for 循环
  2. while 循环
  3. do-while 循环
  4. breakcontinue 控制循环

一、C语言中的分支语句 

分支语句就是允许程序根据条件的真或假执行不同的代码块(0为假,非0为真)。表达式的结果如果是0,则语句不执⾏,表达式的结果如果不是0,则语句执⾏。

1. if 语句

if 语句是用于根据一个条件来执行代码。

语法如下:

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

if后面的()中是表达式,如果表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。{ }里面添加的就是当表达式成立的时候,进行执行的语句。

比如:

#include <stdio.h>

int main() 
{
    int number = 10;
    if (number > 5) 
    {
        printf("Number is greater than 5.\n");
    }
    return 0;
}

上面的例子就是先定义了一个整数为10,然后在 if 后面的()里面添加了判断条件,在{ }里面添加了当( )里面的条件成立的时候,需要进行执行的代码。上面代码 if 语句的意思是当定义的数字大于5的时候,计算机输出 Number is greater than 5. 这句话。

2. if-else 语句

if-else语句就是在条件为假时,提供了一个备选的代码块。 

语法如下:

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

与 if 语句不同的是, if-else语句提供了在判断条件为假的时候的一个执行代码。比如判断一个数是奇数还是偶数,这就要用到 if-else语句。

比如:

#include <stdio.h>
int main()
{
    int num = 0;
    scanf("%d", &num);
    if (num % 2 == 1)
        printf("%d是奇数\n", num);
    else
        printf("%d是偶数\n", num);
    return 0;
}

上面的例子就是先判断 if 之后( )里面的条件是否成立,比如输入15,( )里面的条件是说输入的这个数除以2需要余1,15除以2是商7余1,所以 if 之后( )里面的条件成立,判断为真,然后进行条件为真时执行的代码(15是奇数);若是输入16,16除以2是商2余0,所以if 之后( )里面的条件不成立,判断为假,需要进行条件为假时执行的代码(16是偶数)。

3. 多分支的 if-else  if-else 语句

当有多个条件需要判断时,可以使用 if-else if-else语句。 

比如:

#include <stdio.h>
int main()
{
    int num = 0;
    scanf("%d", &num);
    if (num == 0)
        printf("输入的数字是 0\n");
    else if (num > 0)
        printf("输入的数字是正数\n");
    else
        printf("输入的数字是负数\n");
    return 0;
}

 以上的例子就是首先输⼊⼀个整数,然后对第一个if后面的( )中的条件判断输⼊的整数是否是0,若判断为真,则输出第一个printf后面( )中的结果;若判断为假,则接着判断第二个if后面的( )中的条件,若第二个if后面的( )中的条件判断为真,则输出第二个printf后面 ( )中的结果;若还是判断为假,则输出最后一个printf后面( )中的结果。

4.switch 语句

switch语句适用于判断多个具体值的情况。

语法如下:

switch (表达式) 
{
    case 值1:
        // 当表达式等于值1时执行的代码
        break;
    case 值2:
        // 当表达式等于值2时执行的代码
        break;
    default:
        // 当表达式不等于任何值时执行的代码
}

判断switch后面( )里面的表达式,若满足case 后面的值1 ,则执行表达式为值1时的代码,以此类推。 

 比如:

#include <stdio.h>

int main() 
{
    int day = 3;
    switch (day) 
   {
        case 1:
            printf("Monday\n");
            break;
        case 2:
            printf("Tuesday\n");
            break;
        case 3:
            printf("Wednesday\n");
            break;
        default:
            printf("Invalid day\n");
    }
    return 0;
}

上面的例子就是说当 switch后面( )里面的表达式满足case 后面的值3,则执行表达式为值3时的代码Wednesday。要注意的点有两点,第一点是case 和后面的数字之间必须有空格,第二点是每一个case 语句中的代码执行完成之后,都必须加上break才可以跳出这个switch语句(必须是每一个case后面都要加上一个break)。

二、C语言中的循环语句

循环语句是用来重复执行其中的某段代码。在C语言中提供了3中循环语句,分别是 for 循环、while 循环以及do-while 循环,下面对这3种循环进行大致的介绍。

1.for 循环

for 循环是三种循环中最常用的循环语句,适用于已知循环次数的场景。

语法如下:

for (初始化; 条件判断; 变量调整) 
{
    // 循环体
}

例如:

#include <stdio.h>

int main() 
{
    int i = 0;
    for (i = 1; i <= 5; i++) 
    {
        printf("%d\n", i);
    }
    return 0;
}

 上面这个例子是在屏幕上输出1-5之间的数字。

2.while 循环

while 循环是在判断条件为真的时候,不断执行之后的代码的一种循环。

语法如下:

while (条件) 
{
    // 循环体
}

当while 后面的( )中的条件判断为真的时候,就重复执行 { } 中的循环体。

例如:

#include <stdio.h>

int main() 
{
    int i = 1;
    while (i <= 5) 
    {
        printf("%d\n", i);
        i++;
    }
    return 0;
}

 首先定义一个整型变量为1,然后再判断while后面( )中的条件,若为真,则执行 { }中的内容;然后再一次判断while后面( )中的条件,若为真,则继续执行 { }中的内容,若为假,则结束程序。

for 循环和while 循环这两种循环语句在实现循环的过程中均有初始化、判断、变量调整这三个部分,但不同的是,for 循环中的三个部分非常集中,便于代码维护,方便阅读;而while 循环中的三个部分比较分散,从形式上略次于for 循环。

3.do-while 循环

do-while 循环和 while 循环类似,但do-while 循环至少会执行一次循环体。

语法如下:

do 
{
    // 循环体
} 
while (条件);

在上面 do-while 循环中,先进行do后面 { }中的循环体,然后再进行while后面( )中的条件判断。

如下:

#include <stdio.h>

int main() 
{
    int i = 6;
    do 
    {
        printf("%d\n", i);
        i++;
    } 
    while (i <= 5);
    return 0;
}

上面的例子中首先定义的整型变量为6,如果是在while循环中,就需要首先判断while 后面( )中的条件是否为真,因为定义了变量为6,而( )中的条件是i<=5,所以 判断条件为假,在while循环中什么都不会输出;而在do-while 循环中,首先进行do后面 { }中的循环体,再进行while后面( )中的条件判断,即便后面判断while 后面( )中的条件为假,也至少会输出1。

 4. breakcontinue控制循环

break:跳出当前循环。

continue:跳过本次循环的其余部分,直接进入下一次循环。

例如:

#include <stdio.h>

int main() 
{
    for (int i = 1; i <= 10; i++) 
    {
        if (i == 5) 
        {
            break; // 当 i 等于 5 时退出循环
        }
        printf("%d ", i);
    }
    printf("\n");

    for (int i = 1; i <= 10; i++) 
    {
        if (i == 5) 
        {
            continue; // 跳过 i 等于 5 的本次循环
        }
        printf("%d ", i);
    }
    printf("\n");
    return 0;
}

运行结果如下:

 

运行结果的第一行就是break运行后的结果,在当 i 为5的时候,直接跳出循环,所以结果中没有5及之后的数字;而运行结果的第二行是continue运行之后的结果,在当 i 为5的时候,跳出的只是i 为5的时候的本次循环,所以结果中除了没有5,其余数字均有。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值