[c语言]超详细带你了解语句“分支语句和循环语句”

简介: [c语言]超详细带你了解语句“分支语句和循环语句”

1.分支语句和循环语句


本章学习重点分支语句和循环语句的使用


分支语句
if
Switch


循环语句
while
for
do  while


goto语句


什么是C语言语句?


c语言中由一个;隔开的叫一条语句



C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。


从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支(选择)结构、循环结构。


C语句可分为以下五类:


表达式语句

标签语句

循环语句

复合语句

跳转语句

分支语句(选择结构)

空语句

下面分别作详细说明:


1. 表达式语句


表达式语句由表达式加上分号“;”组成。


其一般形式为:表达式;执行表达式语句就是计算表达式的值和执行副作用。


例如: x=y+z; a=520;赋值语句;


y+z;加法运算语句,但计算结果不能保留,无实际意义;


i++; 自增1语句,i值增1。


i++; 是先运算i后再加1。


++i; 是先把i值增1后运算。


包括空语句,函数调用语句在内都属于表达式语句。


2.标签语句


标签语句有3种:


标签名:语句


case 常量表达式:语句


default:语句


说明:其中case语句和default语句只出现于switch语句中。


注意,同一个switch中case后的表达式只能出现一次


switch(exp)
{
case 2:;
case 1+1:;
}
//ERROR


标签名:语句用于goto,作用范围是函数内部,无法跨函数,并且需要保证同函数内部的标签名唯一。


3. 循环语句


循环语句有4种,分别是


while ( expression ) statement


do statement while ( expression ) ;


for ( expression(opt) ; expression(opt) ; expression(opt) ) statement


for ( declaration expression(opt) ; expression(opt) ) statement


循环语句用于实现程序的循环流程。



4. 复合语句


用括号{}括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句,例如


{
x=y+z;
a=b+c;
printf(“%d%d”,x,a);
}


是一条复合语句。



5. 跳转语句


跳转语句有4种,分别是


goto 标签 ;


continue ;


break ;


return 表达式(可选) ;


跳转语句控制程序跳转到另一处执行。



6. 分支语句(选择结构)

选择语句有3种,分别是


if ( expression ) statement


if ( expression ) statement else statement


switch ( expression ) statement


1. if  语句


语法结构(3种):
   if (表达式)
           语句;
   if(表达式)
           语句1;
   else 
           语句2;
//多分支
   if(表达式1)
           语句1;
else   if(表达式2)
            语句2;
else
            语句3;


代码示例:


#include"stdio.h"
int main()
{
  int age = 20;
  if (age < 18)
  printf("未成年\n");
  else if (age >= 18 && age < 28)
  printf("青年\n");
  else if (age >= 28 && age < 50)
  printf("壮年\n");
  else
  printf("老年\n");
  /*if (age >= 18)
  printf("成年");
  else
  printf("未成年");*/
  return 0;
}



注:C语言中表示真假”


     0表示假,非0表示真


如果条件成立,要执行多条语句,使用代码块


一对{}就是一个代码块


#include"stdio.h"
int main()
{
  int main()
  {
  if (表达式)
  {
    语句列表1;
  }
  else
  {
    语句列表2;
  }
  return 0;
  }


代码示例:


int week []  = { 1,2,3 };
  scanf_s(" %d\n",&week);
  if (week == 0) 
  {
  printf("好好学习\n");
  printf("完成作业\n");
  }
  else if (week == 1)
  {
  printf("出门锻炼\n");
  printf("强身健体\n");
  }
  else
  {
  printf("吃喝玩乐\n");
  printf("风花雪月\n");
  }


2. Switch语句



Switch语句也是一种分支语句,常常用于多分支的情况


比如:


输入1, 输出星期一
输入2, 输出星期二
输入3, 输出星期三
输入4, 输出星期四
输入5, 输出星期五
输入6, 输出星期六
输入7, 输出星期日


#include"stdio.h"
int main()
{
  int week=0;
  scanf_s(" % d", &week);
  switch (week)
  {
  case 1:
  printf("星期一\n");
  break;
  case 2:
  printf("星期二\n");
  break;
  case 3:
  printf("星期三\n");
  break;
  case 4:
  printf("星期四\n");
  break;
  case 5:
  printf("星期五\n");
  break;
  case 6:
  printf("星期六\n");
  break;
  case 7:
  printf("星期日\n");
  break;
    default:
        printf("输入有误");
        break;
  }
  return 0;
  }


case 整形常量表达式:


        语句;


3.while语句


while语句的一般形式为:

   while(表达式) 语句

其中表达式是循环条件,语句为循环体。


while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。其执行过程可用下图表示。




用while语句计算从1加到100的值。用传统流程图和N-S结构流程图表示算法,见图:



#include <stdio.h>
int main(void){
int i,sum=0;
i=1;
while(i<=100){
sum=sum+i;
i++;
}
printf("%d\n",sum);
return 0;
}


总结:break在while循环中的作用


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


continue在while循环中的作用


continue就是终止本次循环也就是说本次continue后边的代码不会再执行,而是直接跳转到while语句的判断部分,进行下一次循环的入口判断


循环语句


for 循环

和 while 一样,for 循环也是一个顶部驱动的循环,但是它包含了更多的循环逻辑,如下所示:


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

   语句



在一个典型的 for 循环中,在循环体顶部,下述三个动作需要执行:


(1) 表达式 1:初始化

只计算一次。在计算控制表达式之前,先计算一次表达式 1,以进行必要的初始化,后面不再计算它。


(2) 表达式 2:控制表达式

每轮循环前都要计算控制表达式,以判断是否需要继续本轮循环。当控制表达式的结果为 false,结束循环。


(3) 表达式 3:调节器

调节器(例如计数器自增)在每轮循环结束后且表达式 2 计算前执行。即,在运行了调节器后,执行表达式 2,以进行判断。


#include <stdio.h>
int main(){
    int i, sum=0;
    i = 1;  //语句①
    while(i<=100 /*语句②*/ ){
        sum+=i;
        i++;  //语句③
    }
    printf("%d\n",sum);
    return 0;
}


for 循环的一般形式为:

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

   语句块

}


它的运行过程为:

1) 先执行“表达式1”。


2) 再执行“表达式2”,如果它的值为真(非0),则执行循环体,否则结束循环。


3) 执行完循环体后再执行“表达式3”。


4) 重复执行步骤 2) 和 3),直到“表达式2”的值为假,就结束循环。


上面的步骤中,2) 和 3) 是一次循环,会重复执行,for 语句的主要作用就是不断执行步骤 2) 和 3)。


“表达式1”仅在第一次循环时执行,以后都不会再执行,可以认为这是一个初始化语句。“表达式2”一般是一个关系表达式,决定了是否还要继续下次循环,称为“循环条件”。“表达式3”很多情况下是一个带有自增或自减操作的表达式,以使循环条件逐渐变得“不成立”。


for循环的执行过程可用下图表示:




do...while 循环


do...while 循环是一种底部驱动的循环:


do 语句 while (表达式);



在控制表达式被第一次计算之前,循环体语句会首先被执行一次。与 while 和 for 循环不同,do...while 循环会确保循环体语句至少执行一次。如果控制表达式的值为 true,那么另一次循环就会继续;如果是 false,则循环结束。


do-while语句的一般形式为:

   do

       语句

   while(表达式);



这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。其执行过程可用下图表示。



目录
相关文章
|
2月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
75 5
|
2月前
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
33 8
|
2月前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
44 6
|
2月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
2月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
2月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
17 0
|
2月前
|
小程序 C语言
初识C语言:走近循环
初识C语言:走近循环
|
IDE 定位技术 开发工具
C语言 第四章 关系、逻辑运算与分支流程控制
一、关系运算 若干表达式用关系运算符连接而成,就构成关系表达式。 关系表达式中,表达式成立,其值为1(真);表达式不成立,其值为0(假)。其他表达式中,其结果如果是非0则为真,结果为0则为假。 关系运算符的优先级低于算术运算符,高于赋值运算符。
1045 0
|
2月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
37 3
|
9天前
|
存储 缓存 算法
【C语言】内存管理函数详细讲解
在C语言编程中,内存管理是至关重要的。动态内存分配函数允许程序在运行时请求和释放内存,这对于处理不确定大小的数据结构至关重要。以下是C语言内存管理函数的详细讲解,包括每个函数的功能、标准格式、示例代码、代码解释及其输出。
34 6