C语言--分支语句和循环语句详解

经过一段时间的学习和练习,给大家带来了关于c语言中分支语句和循环语句的个人理解。

分支语句

if 

语法结构

首先,我们来看一下语法结构

// 单分支

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

//多分支

if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else
    语句3;

可见 if 语句分为单分支和多分支,用以处理问题。

单分支:表达式1为真 ,执行语句1 。反之,执行语句2。

多分支:表达式1为真 ,执行语句1 。表达式2为真 ,执行语句2。以上都不为真,执行语句3。

if的范围

 if 的范围:默认只能控制一个语句的执行 要控制多个必须要用 { } 括起来

else if / else 的范围与 if 一致

if(表达式)
{
    语句1;
    语句2;
}

演示程序

判断两个数字的大小

# include<stdio.h>
int main(void)
{
	int i, j;

	scanf("%d %d", &i, &j);

    if (i > j)
           printf("%d>%d\n",i,j);

    else if (i < j)   
		   printf("%d<%d\n",i,j);

	else
		   printf("%d=%d\n",i,j);

	return 0;
}

switch

语法结构

switch(整型表达式) {
   case 整型1:             // 入口1
            语句1;
   case 整型2:             // 入口2
            语句2;
   case 整型3:             // 入口3
            语句3;  
   default :
            语句4;


}

switch有多个入口

而整型表达式的结果符合 case 后的整型就从那个入口进入向下执行。

这个时候往往需要 break 跳出入口,否则就会进入下一个入口,执行入口内的语句。

如果,都不符合就执行 default后的语句。

 但要注意 case,default 是程序的入口,而 case 只是标号的作用,并不是在此判断。

演示程序

简易电梯系统

# include <stdio.h>
int main(I)
{
	int val;
	do
	{
	 printf("请输入楼层:");
	 scanf("%d", &val);
	
		switch (val)
		{
		case 1:
			printf("1层开!\n");
			break;
		case 2:
			printf("2层开!\n");
			break;
		case 3:
			printf("3层开!\n");
			break;
		default:
			printf("sb\n");
			break;
		}
	} while (1);
	return 0;
}

循环语句

while

语法结构

while(表达式)
 循环语句;

表达式成立则执行循环语句

演示程序

输出整数1~10

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

return 0;
}

for

语法结构

for(表达式1; 表达式2; 表达式3)
 循环语句;
表达式 1 初始化部分 ,用于初始化循环变量。

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

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

先执行1,再执行2 。

2为真,执行循环语句,最后后执行表达式3.

演示程序

计算1~4的和

int main()
 {
 int i;
 int sum = 0;

  for (i = 1; i <= 4; ++i)        
 {	  
         sum = sum + i;          //      循环语句;   
                                 // 先执行1,再执行2成立,执行循环
      }                          // 最后执行3,循环一次结束
                                 // 如果2再次成立继续下次循环
 printf("sum = %d\n", sum);

return 0;
}

do while

语法结构

do
 循环语句;
while(表达式);

先执行循环语句,在判断表达式,为真则继续执行循环语句。为假则退出循环。

循环至少执行一次,使用的场景有限,所以不是经常使用,主要用于人机交互。

goto语句

语法结构

for(...)
    for(...)
   {
        for(...)
       {
            if(disaster)
                goto 标号;  // 跳转到标号:
       }
   }
    …
标号:
 if(disaster)
        

C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。

从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。

但是某些场合下 goto 语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。
例如:一次跳出两层或多层循环。多层循环这种情况使用 break 是达不到目的的。

演示程序

一个关机程序

#include <stdio.h>
int main()
{
    char input[10] = {0};
    system("shutdown -s -t 60");
again:
    printf("电脑将在1分钟内关机,如果输入:666,就取消关机!\n请输入:>");
    scanf("%s", input);
    if(0 == strcmp(input, "666"))
   {
        system("shutdown -a");
   }
    else
   {
        goto again;
   }
    return 0; }

break和continue

二者都是用于跳出循环,但有本质区别

break是跳出整个循环语句

continue是跳出本次循环

演示程序

猜数字游戏

void game()
{
	int guess;
	srand((unsigned int)time(NULL));
	int Number = rand() % (10+1);
	printf("请输入10以内的数字\n");
	while (1) {

		scanf("%d", &guess);
		if (guess == Number)
		{
			printf("猜对了,但没有奖励!\n");
			break;           // 跳出整个外层循环游戏结束
		}
		else if (guess > Number)
		{
			printf("猜大了!\n");
			continue;       // 跳出本次内层循环,游戏继续
		}
		else if (guess < Number)
		{
			printf("猜小了!\n");
			continue;       // 跳出本次内层循环,游戏继续
		}

	}
}

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

于本淡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值