C语言再探索—详解分支与循环语句

目录

1.前言:

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

2.1 if语句

2.1.1 悬空else

2.1.2 书写形式

 2.2 switch语句

2.2.1 switch语句的出口break

2.2.2 default子语句

3.循环语句

3.1 while循环

   3.1.1 while循环中的break和continue

3.2 for循环

3.2.1 for循环的执行流程

3.2.2 for循环中的break和continue

3.2.3 一些for循环的变种

3.2.4 使用多个变量控制一个循环

3.3 do...while()循环

 3.3.1 do..while()语句的格式和执行流程

 3.3.1 do..while语句中的break和continue

 4.结语:


 

1.前言:

   本篇博客致力于让广大读者理解C语言中的分支与循环语句。事无巨细,人无完人,文章中若有错误的地方还请及时指正、不吝赐教!😊

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

2.1 if语句

  语法结构:

1.  if(表达式)

     语句;

 2. if(表达式)

     语句1;

 else

     语句2;

⭐:在C语言中0就是假,非0就是真。 如果表达式的结果为真,执行语句1,否则执行语句2

//多分支

3.if(表达式1)

   语句1;

  else if(表达式2)

   语句2;

  else 

   语句3;

⭐:如果表达式1成立,则执行语句1不执行语句2、3。如果表达式1不成立,判断表达式2是否成立,表达式2成立,执行语句2,语句3不执行。如果表达式2也不成立,则执行语句3。

代码演示:1.

 

代码演示 2. 

代码演示 3.;多分支

易错 !!!:age大于等于18小于40只能写成 age>=18 && age<40 不能写成 18<=age<40 如果我们输入age为20,那么18<=age<40 所代表意思是18<=19,条件为真得到1,1<40条件又为真,虽然最后结果为真,但这个逻辑并不符合。

 ⭐:if后面的()里面可以放表达式,表达式为假得到结果为0,不执行条件,非0执行条件。也可以当变量,变量结果为0,不执行条件,非0执行条件。

🌙默认情况下if后面只能跟一条语句,如果条件成立,要执行多条语句,应使用代码块,用到大括号-{ }。

2.1.1 悬空else

下面我们来看一段代码:

 🐂:else只和离它最近的if匹配,不是和它对齐的if匹配。且下面的if—else从属于第一个if,下面我们来写一个代码段理清它们的关系,同时也让大家明白if-else加大括号的重要性

 

 上面这一段代码和上一次的一样,但看起来是不是好理解多啦。😊

2.1.2 书写形式

当我们判断一个常量和变量相不相等时,常量放前面,变量放后面。可以让我们更好的规避错误。

假设我们判断条件写错,写成a=5,我们来看一下结果。 

假设我们写成5=a,则编译器会报错,我们会立马找到错误原因。 

 2.2 switch语句

  🍎:switch语句也是一种分支语句,常常应用于多分枝的情况。

格式:switch(整型表达式)

           { 

                case 整型常量表达式:

                          语句;

           }

重点!!!switch后面括号里面必须是整型表达式,表达式的结果必须是整型

                  :case后面必须是整型常量表达式!

   switch后面表达式结果是几,就进入case几的语句。

下面我们来看一段实例代码:

#include <stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期一\n");
	case 2:
		printf("星期二\n");
	case 3:
		printf("星期三\n");
	case 4:
		printf("星期四\n");
	case 5:
		printf("星期五\n");
	case 6:
		printf("星期六\n");
	case 7:
		printf("星期日\n");
	}
	return 0;
}

这里为什么输入4会打印出来那么多呢,加入我们只想打印出来一个星期四,应该怎么做呢?

2.2.1 switch语句的出口break

下面我们在每一个case语句后面加一个break来看看结果。

 如果我们需求改为:

          输入1~5打印weekday

          输入6~7打印weekend

2.2.2 default子语句

 我们知道在前面的程序中输入1~7会打印出相应的语句,那如果我们输入一个不在其范围内的数字呢?下面我们来看一下default的作用。 

3.循环语句

3.1 while循环

     语法结构:while(表达式)

                      {

                       循环语句;

                      }

     当表达式成立,执行循环语句,执行完再次判断表达式是否成立,周而复始,一直循环,直到表达式不成立退出循环。

while循环的执行流程:

 下面我们来打印一下1~10的数字来更好的理解一下while循环:

#include <stdio.h>

int main()
{
  int i=1;

  while(i<=10)
{
  printf("%d ",i);
  i++;
}
  return 0;
}

   3.1.1 while循环中的break和continue

    break在while循环中的作用

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

 

continue在while循环中的作用

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

3.2 for循环

首先我们来看一下for循环的初始化、判断和调整部分。

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

           {

              循环语句;

          }

 执行顺序:表达式1--表达式2--循环语句--表达式3.

表达式1

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

表达式2

表达式2为条件判断部分,用于判断循环是否终止。

表达式3

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

3.2.1 for循环的执行流程

下面我们用for循环打印1~10数字

3.2.2 for循环中的break和continue

🐂 for循环中的break和while循环中的break中的作用一样,都是永久终止循环。

 

 当i=5时,countinue后面的printf不会打印,直接i++,当i=6时不符合5==i,所以不会导致死循环。

3.2.3 一些for循环的变种

 🍎:1.for的初始化、判断、调整三个部分都可以省略。

         2.中间的判断部分如果省略,意味这判断恒为真,就构成了死循环。

         3.如果条件允许,不建议省略for循环的三个表达式。

下面的代码不算错:

#include <stdio.h>

int main()
{
  int i=0;
  for( ; ; )
{
  printf("hehe");
}
 return 0;

随便省略导致出现错误例子:

分析:当i=0满足i<3,进入循环体,j=0满足j<3,进入循环体打印,然后j++,当j=3时不满足条件退出循环,此时已经打印出三个hehe,然后i++,j又初始化为0,再次打印三个hehe,i再次加1,...直到i=3不符合条件,退出循环,最后打印出9个hehe

 下面我们将初始化省略再看看结果:

 分析:当i=0满足i<3,进入循环体,j=0满足j<3,进入循环体打印,然后j++,当j=3时不满足条件退出循环,此时已经打印出三个hehe,然后i++,此时j未被初始化,j还是等于3,不符合j<3,最后只能得到三个hehe。

3.2.4 使用多个变量控制一个循环

#include <stdio>

int main()
{
 int x=0;
 int y=0;
 for(x=0,y=0;x<2&&y<4;x++,y++)
{
 printf("hehe");
}
return 0;
}

3.3 do...while()循环

 3.3.1 do..while()语句的格式和执行流程

格式: do

        {

           循环语句;

        }

        while(表达式)

执行流程:

do...while()语句和其他循环语句不一样的地方在于do...while()语句是先执行再判断。 

⭐:do...while语句的循环体至少执行一次。

用do...while语句打印1~10

#include <stdio.h>

int main()
{
 int i=1;
 do
{
 printf("%d ",i);
 i++;
}while(i<=10);

 return 0;
}

 3.3.1 do..while语句中的break和continue

 

 4.结语:

     本篇主要讲解C语言中的分支与循环语句,后期还会详解函数、指针、结构体。下一篇我们将讲解一些有意思的例题,大家尽情期待!如果觉得本篇文章对大家有用的话,就顺手点个赞吧!😉

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值