C语言:分支与循环语句

目录

if语句

if-else语句

switch语句

whlie循环

for循环

[do while循环](#do while循环)


if语句

语法格式:

复制代码
if(表达式){
    语句
}

if小括号内表达式如果为真,就执行下面的语句,为假则不执行。(0表示假,1表示真)

if语句执行流程图如下:

还有一种情况为:

复制代码
if(表达式){
    语句1
}
esle{
    表达式2
}

if-else语句执行流程图如下:

默认情况下(if和else不写大括号的情况),if和else都只控制一个语句,若要控制多条语句,则必须加上大括号,(这里建议加上,不仅美观也是一个好习惯)

if-else也可以嵌套使用

复制代码
#include<stdio.h>
int main() {
	int age = 0;
	printf("请输入年龄:\n");
	scanf("%d", &age);
	if (age < 0)
	{
		printf("输入格式不正确,年龄没有负数");
	}
	else {
		if ((age >= 0) &&(age <= 10))
		{
			printf("为人类幼崽\n");
		}
		else if ((age > 10) && (age <= 18))
		{
			printf("青少年\n");
		}
		else
		{
			printf("成年人\n");
		}
	}
	return 0;
}

输出结果:

这行代码里边有一个"&&"表示的短路与,(表达式1) && (表达式2),当表达式1为假时,不再执行表达式2,直接为假,返回0。与这个用法类似的还有短路或"||",(表达式1) || (表达式2),当表达式1成立时,不再执行表达式2,直接为真,返回1。

switch语句

switch在英语中有开关的含义,在C语言中也充当"开关的作用"

复制代码
switch()
{
    case (数字):
        语句1;
        break;

    case (数字):
        语句2;
        break;
    case (数字):
        语句3;
        break;
    default:
        语句4;
        break;
}

switch是特殊形式的if-else结构,用于判断条件有多个结果时不同结果对应的语句。

注:case和数字之间要留有空格。default在case语句都没有匹配的时候充当默认语句。

C语言提供了三种循环:for,while,do while

whlie循环

复制代码
while(判断条件)
{
    循环体语句
}

程序流程图如下:

for循环

复制代码
for(表达式1;表达式2;表达式3){
    循环语句
}

for循环中的表达式123在实际写代码的过程中可能会遇到空着不写的地方,也是正确的书写。

for循环程序流程图如下:

例子:

复制代码
#include<stdio.h>
int main() {
	for (int i = 0; i < 10; i++)
	{
		int num = i + 1;
		printf("%d ",num);
	}
	return 0;
}

运行结果如下:

do while循环

格式为:

复制代码
do{
    循环语句
}
while(条件判断);

程序流程图如下:

do-while循环先执行一遍循环体再对条件进行判断。

这三个循环都有continue和break。在循环中,continue语句用于跳出本次循环,进入下一次循环,而break语句则是直接终止循环,执行后面的语句。这两个语句的共同点是:break\continue后面的语句均不再执行。

相关推荐
麦兜*5 小时前
Swift + Xcode 开发环境搭建终极指南
开发语言·ios·swiftui·xcode·swift·苹果vision pro·swift5.6.3
Coovally AI模型快速验证5 小时前
农田扫描提速37%!基于检测置信度的无人机“智能抽查”路径规划,Coovally一键加速模型落地
深度学习·算法·yolo·计算机视觉·transformer·无人机
pusue_the_sun5 小时前
数据结构:二叉树oj练习
c语言·数据结构·算法·二叉树
萧鼎6 小时前
Python pyzmq 库详解:从入门到高性能分布式通信
开发语言·分布式·python
RaymondZhao346 小时前
【全面推导】策略梯度算法:公式、偏差方差与进化
人工智能·深度学习·算法·机器学习·chatgpt
艾伦~耶格尔6 小时前
【集合框架LinkedList底层添加元素机制】
java·开发语言·学习·面试
zhangfeng11336 小时前
DBSCAN算法详解和参数优化,基于密度的空间聚类算法,特别擅长处理不规则形状的聚类和噪声数据
算法·机器学习·聚类
yujkss6 小时前
Python脚本每天爬取微博热搜-终版
开发语言·python
yzx9910137 小时前
小程序开发APP
开发语言·人工智能·python·yolo
啊阿狸不会拉杆7 小时前
《算法导论》第 32 章 - 字符串匹配
开发语言·c++·算法