C语言入门:分支和循环(if, switch...case ,while,do.....while, for的用法 )

分支与循环这一章节是C语言学习过程中很重要的一个环节,后面的很多内容都是在熟练掌握分支与循环的前提下学习的,下面我们就来讲一下分支与循环

分支语句

再学习分支语句前要先学会判断语句的相关写法

判断语句的写法

if( )里面的判断语句的写法也是有讲究的,下面我们来看一下如何写

  1. 判断是否大于(小于):直接用 > (<)号就可以
  2. 判断是否等于:判断是否等于时要用到==,而不是=(最容易犯的错误)一个等于号代表的是赋值,结果永远为真,而两个等于才是判断是否相等
  3. 判断是否不等于:用 !=表示判断是否不等于
  4. 判断条件的与或:&&代表 与,两个条件同时成立结果才为真,||代表 或,两个条件满足一个就为真,两者都满足短路特性(如果判断一条语句就可以得出结果,那另一条语句不会再执行判断)

1.if…else语句

先看下面一行代码

#include<stdio.h>
int main()
{
   int a=2,b=3;
   if(a>b)
   {
      printf("%d\n",a);
   }
   else
    {
      printf("%d\n",b);
   }
   return 0;
}

这样的一段代码输出的结果就是 3,从上面的代码很容易可以看出它的格式即
if(条件语句判断)
{
要执行的语句1;
}
else
{
要执行的另一条语句2;
}

如果if中的判断结果为真,那么就执行语句1,并且不会执行语句2;同样,如果为假,执行语句2,并且不会执行语句1。
注意如果if后面要执行的语句1或语句2中只有一行代码那么{ }可以省略不写

悬空else

else是和离它最近的if相匹配的
例如下面一段代码:

#include<stdio.h>
int main()
{
	int a=2,b=3;
	if(a==1)
	      if(3==b)
	            printf("hehe");
	else
	            printf("haha");            
	return 0;
 } 

你觉得这段代码的结果是什么呢?没错不输出任何结果。因为第一个if判断结果为假,后面的内容就不再执行了,下面的else是与第二个if相匹配的,由此可以看出{ }以及代码风格的重要性。

2.switch语句

switch语句常用于有多分支的情况,大多数情况下可以与if语句互相转换。
看一下下面代码

#include<stdio.h>
int main()
{
	int a;
	scanf("%d",&a);
	switch(a)
	{
		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;
	}        
	return 0;
 } 

我们通过键盘输入一个数字赋值给a,进入switch语句后,通过判断a的值从而找到相对应的case语句。值得注意的是每一条case语句结束后都应当用一个break来表示结束 如果没有break找到相对应的case语句后会把后面的所以语句内容全部执行。

default子句

如果在switch中找不到相对应的case,这时候可以使用default来表示其他,其位置放在哪里都可以。

#include<stdio.h>
int main()
{
   int a;
   scanf("%d",&a);
   switch(a)
   {
   	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("找不到星期几\n");break; 
   }        
   return 0;
} 

循环语句

1.for循环

首先先看一段代码

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

这段代码的作用是打印1~10之间的数。从上述代码可以看出for循环的基本格式
for(表达式1;表达式2;表达式3)
{
执行语句;
}

表达式1:为初始化部分,用于初始化循环变量
表达式2:为条件判断部分,用于判断循环是否终止(可以省略只写一个;无限循环)
表达式3:为调整部分,用于循环条件的调整

2.while循环

先看下面一段代码

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

这也是输出1~10,不同的是这使用的是while循环,可以看出while循环中也存在初始化,条件判断以及调整部分,不同的是他们的位置不同。

while中的break,continue语句

看下面一段代码

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

这段代码的输出结果为1 2 3,由此可以看出break的作用是跳出结束循环。
再来看下面一段代码:

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

这段代码的输出结果是 1 2 3 然后无限循环,原因是continue的作用是跳过本次循环并且本次循环后面的内容不再执行,直接跳转到while的判断,i没有加一,导致i一直是4,所以无限循环。
我们对这个代码稍加修改,改一下i++的位置

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

这段代码的结果就变成了2 3 5 6 7 8 9 10 11,可见我们在写代码时一定要注意continue的位置。

3.do…while语句

还是先看代码

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

这段代码的作用还是输出1~10,与while不同的是do…while语句不管是否条件成立都先执行一次do里面的语句,之后再进行判断是否条件成立,而while则是先判断再执行。

break,continue语句的用法在这三个循环语句中的用法一致

结语

到这里我所介绍的分支与循环语句就结束了,希望可以帮到各位。要想熟练掌握分支与循环语句,仅仅学会简单的基本语句是不能掌握的,最重要的还是要多敲代码多刷题。我想要告诉大家努力终有回报的。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值