C语言分支和循环详解

引子:

C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔能够实现这三种结构的。其实我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合。
我们可以使⽤ if 、switch 实现分⽀结构,使⽤ for 、while、 do while 实现循环结构。

一.分支语句:

1.if

1.1语法:

if(表达式)
语句;
else
语句;
在if的表达式中,如果表达式成立(即为真),那么执行语句

1.2嵌套if

if()
语句;
else if(表达式)
语句;
else
语句;

注意:如果是多条语句时,建议加上{ }

1.3实例

1.3.1

要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数

int num=0;
if(0==num)
{
      printf("输入的数是0");
}
else if(num>=0)
{
      printf("输入的数是正数");
}
else
{
      printf("输入的数是负数");
}
1.3.2

要求输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出不是整数

int num = 0;
 scanf("%d", &num);
 if(num>0)
 {
    if(num%2 == 0)
       printf("偶数\n");
    else
       printf("奇数\n");
 }
 else
 {
       printf("输⼊的值是负数\n");
 }

2.switch

switch 语句是⼀种特殊形式的 if…else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。

2.1语法:

switch (表达式)
{
case 结果1: 语句
break;
case 结果2: 语句
break;
default: 语句;
break;
}

2.2注意点:

(1)switch 后的表达式必须是整型表达式
(2)case后面只能加整型常量表达式
(3)case 和后边的数字之间必须有空格

2.3实例

2.3.1

输⼊⼀个1~7的数字,打印对应的星期⼏

int day=0;
scanf("%d",&day);
switch(day)
{
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("请输入正确的数字");
 }
注意:

(1)每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。
(2)default的作用:当switch中的表达式在case中无匹配的结果时,走default的路线。
(3)default语句和case语句没有固定的顺序要求,default可以放在最后,也可以放在最开始。

二.循环语句

1.for

1.1语法:

for(表达式1; 表达式2; 表达式3)
语句;
表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整

1.2执行原理

⾸先执⾏ 表达式1 初始化循环变量,接下来就是执⾏ 表达式2 的判断部分, 表达式2 的结果如果==0,则循环结束; 表达式2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式3 ,调整循环变量,然后再去 表达式2 的地⽅执⾏判断, 表达式2 的结果是否为0,决定循环是否继续。
整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循环。

1.3实例

在屏幕上打印1~10的值

int i=0;
for(i=1;i<=10;i++)
{
	printf("%d ",i);
}

2.while

2.1语法:

while(表达式)
语法;

2.2执行原理:

⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。

2.3实例:

在屏幕上打印1~10的值

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

3.do…while

3.1语法:

do
语句;
while(表达式);

3.2执行原理:

在 do while 循环中先执⾏图上的“语句”,执⾏完语句,在去执⾏“判断表达式”,判断表达式的结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。

3.3实例;

在屏幕上打印1~10的值

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

三.循环语句中的break语句和continue语句

1.break语句:

1.1作用:

break语句的作用是终止当前循环,只要执行break语句,就会直接就会跳出循环,继续往后执⾏。

1.2实例:

int i=1;
while(i<=10)
{
	if(5==i)
		break;
	printf("%d ",i);
	i++;
}//最后的打印结果为1 2 3 4
注意:

使用不同的循环来写上面代码,输出结果都是1 2 3 4,因此在三大循环中break语句无差异

2.continue语句:

2.1作用:

continue语句的作用是跳过本次循环continue后面的代码,再去执行循环下一次循环。

2.2实例:

//while循环
int i=1;
while(i<=10)
{
	if(5==i)
		continue;
	printf("%d ",i);
	i++;
}//输出结果为1 2 3 4 然后死循环

//for循环
int j=0;
for(j=1;j<=10;j++)
{
	if(5==j)
		continue;
	printf("%d ",j);
	j++;
}//输出结果为1 2 3 4 5 6 7 8 9 10

在上面实例的while循环中,当i=5后,continue语句执行,跳过了后面的i++;然后继续去执行循环,由于i的值一直没变,因此一直在执行continue语句,从而死循环。
而for循环的实例中,当执行continue语句后,跳过后面的打印再去实现循环,这时候实现了( )内的i++,i自增不等于5,因此不会死循环。

由上可知在for循环和while循环中continue有所差异。

以上是本次所有内容,谢谢观看。

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值