C语言——分支和循环(详解)

C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构。

我们可以使用 if 、 switch 实现分支结构,使用 for 、 while 、 do while 实现循环结构。

目录

一、分支结构

(一)、if 分支结构

1.1.1  if语句

1.1.2 else语句

1.1.3 if和else的嵌套使用

1.1.4 悬空else问题

1.1.5  if else 语句

(二)、switch分支结构

1.2.1  switch 语句

1.2.2  if语句和switch语句的对比

1.2.3  switch语句中的break

1.2.4  switch语句中的default

1.2.5  switch语句中的case和default的顺序问题

二 、循环结构

(一)、while 循环结构

(二)、for 循环结构

(三)、do-while循环结构

(四)、break和continue语句

(五)、goto语句


一、分支结构

(一)、if 分支结构

1.1.1  if语句

if语句的语法形式如下:

if ( 表达式 )
    语句

表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。

在C语言中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果是不是0,则语句执行。

#include<stdio.h>

int main()
{
	int age = 0;  //age表示你的年龄
	scanf("%d", &age);//请输入你的年龄
	if (age >= 18)
		printf("你已经是一个成年人了");

	return 0;
}

上面的代码中,如果你输入的值大于等于18,就会输出:你已经是一个成年人了

比如:你输入了21

但是,如果你输入的值小于18,则

printf("你已经是一个成年人了");

就不会执行

比如:你输入了15

这个时候,我们需要用到else,下面1.2会提到,暂时不提

如果你还想在输出“你已经是一个成年人了”的同时,输出“你已经可以开始赚钱了”,你可能会这样写:

#include<stdio.h>

int main()
{
	int age = 0;  //age表示你的年龄
	scanf("%d", &age);//请输入你的年龄
	if (age >= 18)
		printf("你已经是一个成年人了\n");
        printf("你已经可以开始赚钱了\n");
	return 0;
}

这个时候,你输入21,好像没问题:

但是你如果输入15,就会发现:

为什么呢?因为if 语句只能控制⼀条语句,所以

if (age >= 18)
		printf("你已经是一个成年人了\n");

当age等于15时,它就不会执行,而是去执行下面这个代码去了

printf("你已经是一个成年人了");

如何解决这个问题?那就要使⽤ {} 将代码括起来,比如:


#include<stdio.h>
int main()
{
	int age = 0;  //age表示你的年龄
	scanf("%d", &age);//请输入你的年龄
	if (age >= 18)
	{
		printf("你已经是一个成年人了\n");
		printf("你已经可以开始赚钱了\n");
	}
	return 0;
}

这个时候输入15,就没问题了:

1.1.2 else语句

else语句需要和if语句联合使用,叫if...else... 语句,语法形式如下:

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

如果表达式 1成立,则执行语句1,否则执行语句2

比如,如果你的年龄小于18岁,就有以下代码:


#include<stdio.h>

int main()
{
	int age = 0;  //age表示你的年龄
	scanf("%d", &age);//请输入你的年龄
	if (age >= 18)
	{
		printf("你已经是一个成年人了\n");
		printf("你已经可以开始赚钱了\n");
	}
	else
	{
		printf("你还未成年呢");
	}
	return 0;
}

当你输入15:

1.1.3 if和else的嵌套使用

如果你想,当18<=age<35时,表示你还很强壮;当age>=35时,表示你已经变老了;

当12<=age<18时,表示你学习压力很大;当age<12是,表示你玩的很开心。

你可以这样写:

#include<stdio.h>

int main()
{
	int age = 0;  //age表示你的年龄
	scanf("%d", &age);//请输入你的年龄
	if (age >= 18)
	{
		printf("你已经是一个成年人了\n");
		printf("你已经可以开始赚钱了\n");
		if (age < 35)
		{
			printf("你还很强壮\n");
		}
		else
		{
			printf("你已经开始变老了\n");
		}
	}
	else
	{
		printf("你还未成年呢\n");
		if (age >= 12)
		{
			printf("你的学习压力很大\n");
		}
		else
		{
			printf("你玩得很开心\n");
		}
	}
	return 0;
}

当你输入8时:

当你输入14时:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值