C语言:分支语句和循环语句(超详解)

简介: C语言:分支语句和循环语句(超详解)



什么是语句?

C语句可分为以下五类:

1. 表达式语句

2. 函数调用语句

3. 控制语句

4. 复合语句

5. 空语句

本章介绍的是控制语句。

       控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C 语言有九种控制语句

可分成以下三类:

1. 条件判断语句也叫分支语句: if 语句、 switch 语句;

2. 循环执行语句: do while 语句、 while 语句、 for 语句;

3. 转向语句: break 语句、 goto 语句、 continue 语句、 return 语句。

分支语句(选择结构)

       这就是选择!

if语句:

//语法结构:

if ( 表达式 )

   语句 ;

if ( 表达式 )

   语句 1 ;

else

   语句 2 ;

// 多分支    

if ( 表达式 1 )

   语句 1 ;

else if ( 表达式 2 )

   语句 2 ;

else

   语句 3 ;

#include <stdio.h>
//代码1
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("未成年\n");
   }
}
//代码2
#include <stdio.h>
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("未成年\n");
   }
    else
   {
        printf("成年\n");
   }
}
//代码3
#include <stdio.h>
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("少年\n");
   }
    else if(age>=18 && age<30)
   {
        printf("青年\n");
   }
    else if(age>=30 && age<50)
   {
         printf("中年\n");
   }
    else if(age>=50 && age<80)
   {
        printf("老年\n");
   }
    else
   {
        printf("老寿星\n");
   }
    
}

应该注意的是:

       else的匹配else是和它离的最近的if匹配的。

switch语句:

switch ( 整型表达式 )

{

   语句项;

}

语句项:

// 是一些 case 语句:

default:switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。

// 如下:

case 整形常量表达式 :

   语句 ;

default 整形常量表达式 :

   语句 ;

语句:

break 语句 的实际效果是退出一个循环。

continue语句 的实际效果是回到一个循环的开头处。

运用练习:

#include <stdio.h>
int main()
{
  int n = 1;
  int m = 2;
   switch (n)
   {
    case 1:
            m++;
    case 2:
            n++;
    case 3:
            switch (n)
            {
             //switch允许嵌套使用
             case 1:
                    n++;
             case 2:
                    m++;
                    n++;
                    break;
            }
    case 4:
            m++;
            break;
    default:
            break;
   }
    printf("m = %d, n = %d\n", m, n);
    return 0;
}

循环语句

       由于我们发现生活中很多的例子是:同一件事情我们需要完成很多次。

       所以C语言中给我们引入了: while 语句,可以实现循环

while循环:

//while 语法结构

while ( 表达式 )

循环语句 ;

//continue 和 break 代码实例
#include <stdio.h>
int main()
{
  int i = 1;
  int j = 10;
    //break实现
  while (i <= 10)
  {
    if (i == 5)
    {
      break;
    }
    printf("%d ", i);
    i = i + 1;
  }
    //continue实现
  while (j >= 10)
  {
    j = j + 1;
    if (j == 15)
    {
      continue;
    }
    printf("%d ", j);
  }
  return 0;
}

总结:

break while 循环中的作用:

        其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环

所以:while中的break是用于永久终止循环的。

continue while 循环中的作用就是:

      continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行

而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

for循环:

for ( 表达式1 ; 表达式2 ; 表达式3 )

       循环语句 ;

表达式 1

表达式 1 初始化部分 ,用于初始化循环变量的。

表达式 2

表达式 2 条件判断部分 ,用于判断循环时候终止。

表达式 3

表达式 3 调整部分 ,用于循环条件的调整。

#include <stdio.h>
int main()
{
 int i = 0;
 //for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
 for(i=1; i<=10; i++)
 {
 printf("%d ", i);
 }
 return 0;
}

breakcontinuefor循环中:

       for循环中也可以出现breakcontinue,他们的意义和在while循环中是一样的。

#include <stdio.h>
int main()
{
  int i = 0;
  for (i = 1; i <= 10; i++)
  {
    if (i == 5)
      break;
    printf("%d ", i);
  }
  for (i = 1; i <= 10; i++)
  {
    if (i == 5)
      continue;
    printf("%d ", i);
  }
  return 0;
}

for循环的变换使用:

#include <stdio.h>
int main()
{
 //代码1
 for(;;)
 {
 printf("hehe\n");
 }
    //for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问
题。
    
    //代码2
    int i = 0;
    int j = 0;
    //这里打印多少个hehe?
    for(i=0; i<10; i++)
   {
        for(j=0; j<10; j++)
       {
 printf("hehe\n");
       }
   }
    
    //代码3
    int i = 0;
    int j = 0;
    //如果省略掉初始化部分,这里打印多少个hehe?
    for(; i<10; i++)
   {
        for(; j<10; j++)
       {
 printf("hehe\n");
       }
   }
    
 //代码4-使用多余一个变量控制循环
 int x, y;
    for (x = 0, y = 0; x<2 && y<5; ++x, y++)
   {
        printf("hehe\n");
   }
 return 0;
}

do...while()循环:

do

循环语句 ;

while ( 表达式 );

特点:循环至少执行一次,使用的场景有限,所以不是经常使用。

do while循环中的breakcontinue:

#include <stdio.h>
int main()
{
 int i = 1;
 do
 {
        if(5 == i)
            break;
 printf("%d ", i);
        i=i+1;
 }while(i<=10);
    
 return 0;
}
#include <stdio.h>
int main()
{
 int i = 1;
    
 do
 {
        if(5 == i)
            continue;
 printf("%d ", i);
        i=i+1;
 }while(i<=10);
    
 return 0;
}

goto语句:

一般用于一次跳出两层或多层循环

       多层循环这种情况使用break 是达不到目的的。它只能从最内层循环退出到上一层的循环

以上就是个人学习见解和学习的解析,欢迎各位大佬在评论区探讨!

感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!

                                             

目录
相关文章
|
1月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
69 5
|
30天前
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
30 8
|
30天前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
37 6
|
1月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
1月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
1月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
16 0
|
1月前
|
小程序 C语言
初识C语言:走近循环
初识C语言:走近循环
|
1月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
34 3
|
C语言
《C语言及程序设计》实践项目——三种循环语句
返回:贺老师课程教学链接  【项目1:利用循环求和】求1000以内所有偶数的和要求:请编出3个程序来,分别用三种循环语句完成,注意体会各种循环语句的执行过程及语法特点。[参考解答]【项目2:求阶乘】输入n,求 n! 并输出[参考解答] 【项目3:输出这样的整数】输出1000以内能被3整除且个位数为6的所有整数。请在下面代码的基础上完成程序: #include &lt;stdio.h&gt; i
1022 0
|
10天前
|
C语言
c语言调用的函数的声明
被调用的函数的声明: 一个函数调用另一个函数需具备的条件: 首先被调用的函数必须是已经存在的函数,即头文件中存在或已经定义过; 如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。 如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。 如果被调用的函数定义出现在主调函数之前可以不必声明。 如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明
27 6