C语言学习—分支和循环

本文介绍了编程中的分支语句,包括if、if-else和多分支结构,强调了代码块的使用以及悬空else的情况。同时,讲解了循环语句,如while、for和dowhile,展示了各种循环的应用场景和控制结构。此外,还提到了switch语句在处理多分支时的便利性。
摘要由CSDN通过智能技术生成

本节学习分支语句和循环语句的使用
分支语句:if 、switch
循环语句:while 、for 、do while
##分支语句

分支语句

if语句

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

if(表达式)
	语句1else
	语句2//多分支
if(表达式1)
	语句1else if(表达式2)
	语句2else
	语句3
//例子
int main()
{
	int age=20;
	if(age<18)
		printf("未成年\n")else if(age>=18&&age<=28)
		printf("青年\n");
	else
		printf("成年\n");
	return 0;
}

如果条件成立,要执行多条语句,应该使用代码块`

int main()
{
	if(表达式)
	{
		语句列表1}
	else
	{
		语句列表2}
	return 0;
}

悬空else
else与其离得最近且未匹配的if进行匹配

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
			printf("hehe\n");
  else
    //   else
		printf("haha\n");
	return 0;
}
输出结果:什么都不输出
//注意:适当的使用{}可以使代码的逻辑更加清楚

if 书写形式对比

//代码1 条件成立返回x,不成立返回y
if(condition){
	return x;
}
return y;
//代码2   可读性比代码1的好
if(condition)
{
	return x
}
else
{
	return y;
}
//代码3
int main()
{
	int num=4;
	if(num=5)  //因为=为赋值  ==为判断相等
	{
		printf("hahao\n");
	}
	return 0;
}
输出结果:哈哈//为什么?
//改正
if(5==num)  //可以写成这样的形式

练习题
判断1-100之间的数是否为奇数

//写法1
int main()
{
	int i = 0;
	while (i <= 100)
	{
		if (i % 2 == 1)
			printf("%d\n", i);
		i++;
	}
	return 0;
}
//写法2 避开了判断语句
int main()
{
	int i = 0;
	while (i <= 100)
	{
		printf("%d\n", i);
		i+=2//运用了算法思想
	}
	return 0;
}

switch语句

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

int main()
{
	int day = 0;
	scanf("%s", &day);
	if (1 == day)
		printf("星期一\n");
	else if (2 == day)
		printf("星期二\n");
	else if (3 == day)
		printf("星期三\n");
	else if (4 == day)
		printf("星期四\n");
	//......一个星期有七天,这样写很繁琐
	return 0;
}
//改正 使用switch语句写
switch(整型表达式)
{
	语句项:
}
//语句项是什么?是一些case语句
case 整型常量表达式
	语句;
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;
	default: 
			printf("输入错误\n");
			break;
	}
}

循环语句

while循环
for
do while

//while 语法结构
while(表达式)
	循环语句;

while语句执行流程:
expr(表达式)、stmt(执行语句)
break结束整个循环,continue结束本次循环
在这里插入图片描述

//例如:打印1-10之间的数
int main()
{
	int i=1;
	while(i<=10)
	{
		printf("%d\n",i);
		i++;
	}
	return 0;
}
输出结果:1 2 3 4 5 6 7 8 9 10
//延伸
int main()
{
	int i=1;
	while(i<=10)
	{
		if(i==5)
			//break;  输出结果1 2 3 4 5
			//continue; 输出结果1 2 3 4 6
		printf("%d\n",i);
		i++;
	}
	return 0;
}

while循环语句

//例子
int main()
{
	int ch = 0;
	//ctrl+z就会输出
	//EOF文件结束标志
	while ((ch = getchar()) != EOF)  //getchar获取字符,接收键盘输入一个字符(EOF),放入ch
	{
		putchar(ch); 
	}
	return 0;

}
//getchar 和putchar用法 getchar输入字符,putchar输出字符
/*
int main()
{
	int ch=getchar();
	putchar(ch);
	printf("%c\n",ch);
	return 0;
}
*/

for循环

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

//使用for循环在屏幕上打印1-10的数字
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if(i==5)
			//break;//输出结果 1 2 3 4
			//continue;输出结果1 2 3 4 6 7 8 9 10
		printf("%d ", i);
	}
	return 0;
}

for 循环的变种

//for循环的变种
int main()
{
	//变种1
	for (;;)
	{
		printf("haha\n");//for循环的初始化、调整、判断都可以省略
		                //但for循环的判断部分 如果被省略,那判断条件恒为真
	}
	//变种2
	int x, y;
	for (x = 0,y = 0; x < 2 && y < 5; ++x, ++y)  //两个变量控制
	{
		printf("haha\n");
	}
	return 0; 
}

练习题

//请问循环要循环多少次
int main()
{
	int i=0;
	int k=0;
	for(i=0,k=0;k=0;i++,k++)
		k++;
	return 0;
}
//循环0次 k=0(赋值,不是判断)为假 不进循环

do while循环

//do语句的语法:
do 
	循环语句;
while(表达式)
int main()
{
	int i=1;
	do
	{
		if(i==5)
			//break; //输出结果1 2 3 4
			//continue; //输出结果 1 2 3 4然后死循环
		printf("%d",i);
		i++;
	}
	while(i<=10);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值