C语言分支与循环语句

我们知道C语言是一门计算机语言,既然它是一门语言,可想而知它有多么的重要,那么我们今天就来学习C语言中的分支语句和循环语句。

1.分支语句

分支语句包括if语句和Switch语句,这两种的用法和表示含义又有什么不同呢?

1.1 if语句
语法结构:
if(表达式)
语句;

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

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

看到下面的代码和运行的结果

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int a = 5;
	if (a > 1)
		printf("hehe\n");
	return 0;
}

在这里插入图片描述

因为我们a=5是大于1的,所以打印‘hehe’,这就是单分支语句。那如果我们将代码稍微的改动一下呢?

int main()
{
	int a = 0;
	scanf("%d", &a);
	if (a > 2)
		printf("hehe\n");
	else
		printf("haha\n");
	return 0;
}

在这里插入图片描述
在这里插入图片描述

这里我们可以看到我们输入的值大于2时打印‘hehe’,而我们输入的值小于2时打印‘haha’,所以我们就可以利用if…else实现只有一个条件的程序。

int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("少年\n");
   }
    else if(age>=18 && age<30)
   {
        printf("青年\n");
   }
    else if(age>=30 && age<50)
   {
     printf("中年\n");
   }
    else if(age>=50 && age<80)
   {
        printf("老年\n");
   }
    else
   {
        printf("老寿星\n");
   }
    
}

在这里插入图片描述
看到这段代码,我们输入的数值根据代码的多种情况进行判断从而达到实现程序,在生活中我们就可以利用它来完成多种条件和多种情况的程序,这就是if的多分支语句。

1.2 switch语句

switch语句也是一种分支语句。
常常用于多分支的情况。

int main()
{
    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;
    }
    return 0;
}

这里我们需要的注意的是switch无法直接实现分支,需要搭配break才能实现真正的分支。break语句 的实际效果是把语句列表划分为不同的分支部分。

在这里插入图片描述
试想一下如果用if…else if…else来实现这个程序,那么代码得多么的复杂呢,用switch语句的话就极大程度上减小了代码的复杂程度,提高了代码的运行速度。
default子句
如果表达的值与所有的case标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条default子句,把下面的标签
default:
写在任何一个 case 标签可以出现的位置。
当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
所以,每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。

2.循环语句
2.1 while循环语句

让我们来看看while语句的流程图
在这里插入图片描述
我们如何用while语句实现在屏幕上打印1-10的数字呢,话不多说,上干货。

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

在这里插入图片描述

这就简单将程序实现了打印1~10的数。如果while语句中碰到了break和continue又会碰撞出怎样的火花呢,让我们通过一段代码来看看。

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

在这里插入图片描述
为什么打印的结果是1234呢?原来在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
所以:while中的break是用于永久终止循环的。

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

在这里插入图片描述
这里打印的结果为什么和break语句打印的结果不同呢?原来虽然二者都是终止循环但是continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

2.2 for循环语句

for(表达式1; 表达式2; 表达式3)
循环语句;
表达式1
表达式1为初始化部分,用于初始化循环变量的。
表达式2
表达式2为条件判断部分,用于判断循环时候终止。
表达式3
表达式3为调整部分,用于循环条件的调整。

这里可以看到用for循环语句实现打印1~10就更加的简单了

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

这里需要注意的是:

  1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。
    2 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

2.3 do…while语句

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

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

特点是循环至少执行一次,使用的场景有限,所以不是经常使用。for循环使用的频率最高。这些循环语句都是C语言中比较重要的,所以我们一定熟练的掌握。今天我们的分享就到这里,谢谢大家!

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Lehjy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值