C语言初阶——分支和循环语句

本文详细介绍了C语言中的分支语句(if和switch)和循环语句(while、for和do...while),包括它们的语法结构、使用场景和常见应用,如循环控制、break和continue的运用,以及简单的编程示例和练习。同时讨论了goto语句的使用和限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:在上一篇文章里,我们对C语言大概念有了一个初步的了解。在接下来的《C语言初阶》系列的文章里我们将更近一步地走进C语言,看看我们到底能够搞出什么花样。就像学习驾驶机动车,我们已经知道了车是什么,它大概有哪些部件,以及一些必要的交通规则,接下来就让我们一起上车吧!

1.什么是语句?

在C语言中用一个分号 “ ”隔开的就是一条语句,比如:

printf("hehe");
1 + 2;

2.分支语句(选择结构)

人生中处处充满了选择,高中分科时我们在选择,大学填报志愿时我们在选择,大三时该找工作还是考研我们在选择,拿到了offer该去哪个公司上班,我们还是在选择。现在的你还在选择吗?
在这里插入图片描述

2.1 if 语句

什么是if语句?它的语法结构是怎样的呢?
语法结构一:

if (表达式)
 
      语句;//满足表达式条件即执行语句

语法结构二:

if (表达式) 
      语句1;//满足表达式即执行语句1
else 
      语句2;//不满足表达式执行语句2

语法结构三:

//多分支
if (表达式1) 
      语句1;
else if(表达式2)
      语句2; 
else
      语句3;

下面我们通过几个实例,来看看if语句到底该怎么使用:

//代码1 —— 单分支
#include<stdio.h>
int main()
{
   
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
   
		printf("未成年\n");
	}
	return 0;
}
//代码2 —— 双分支
#include<stdio.h>
int main()
{
   
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
   
		printf("未成年\n");
	}
	else
	{
   
		printf("成年\n");
	}
	return 0;
}
//代码3 —— 多分支
#include<stdio.h>
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");
	}
	return 0;
}

解释一下:如果表达式的结果为真,则语句执行。那在C语言中真假该如何表示呢?我们用0表示假,非0表示真。
根据语法,在表达式语句判断完之后我们只能执行一条语句,如果我们想要执行多条语句该怎么办呢?这里我们应该使用代码块,一对 { } 就是一个代码块,代码块里可以放多条语句。

#include<stdio.h>
int main()
{
   
	if (表达式1)
	{
   
		语句列表1}
	else
	{
   
		语句列表2}
	return 0;
}

2.1.1 悬空else
当你写了这个代码:

#include<stdio.h>
int main()
{
   
	int a = 0;
	int b = 2;
	if(a == 1)
		if(b == 2)
			printf("hehe\n");
		else
			printf("haha\n");
	return 0;
}
改正:
//适当的使用{ }可以使代码逻辑更加清楚
//代码风格很重要
#include<stdio.h>
int main()
{
   
	int a = 0;
	int b = 2;
	if(a == 1)
	{
   
		if(b == 2)
		{
   
			printf("hehe\n");
		}
	}
	else
	{
   
		printf("haha\n");
	}
	return 0;
}
//else的匹配;else是和它离得最近的if匹配的

2.1.2 if 书写形式的对比

//代码1
if (condition) {
   
	return x;
}
return y;

//代码2
if (condition)
{
   
	return x;
}
else
{
   
	return y;
}

//代码3
int num = 1;
if (num == 5)
{
   
	printf("hehe\n"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

暗月の流星劫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值