分支与循环(1)

分支与循环(1),第1张

目录

一、分支语句(选择结构)

1.1 、if 语句

1.2、悬空else

1.3、 switch语句

二、循环语句

2.1 whie语句

 2.1.1 getchar( )与putchar( )

三、结束语


一、分支语句(选择结构) 如果你好好学习,校招时拿一个好 offer ,走上人生巅峰。

如果你不学习,毕业等于失业,回家卖红薯。

这就是选择! 1.1 if 语句

1.11

#include 
int main()
{
	int i = 0;
//0==i可以防止少等于号
	if (0==i)
	{
		printf("hehe\n");
	}
	return 0;
}

 1.12

#include 
int main()
{
	int i = 1;
	if (0==i)
	{
		printf("hehe\n");
	}
	else
	{
		printf("haha\n");
	}
	return 0;
}

注:if和else后面只可以加一条语句,如果想要加多条语句需要加大括号

1.13

#include 
int main()
{
	int age = 10;
	scanf("%d", &age);
	if (age < 18)
		printf("青少年\n");
	else if (age >= 18 && age < 28)
		printf("青年\n");
	else if (age >= 28 && age < 40)
		printf("中年\n");
	else if (age >= 40 && age < 60)
		printf("壮年\n");
	else if (age >= 60 && age <= 100)
		printf("老年\n");
	else
		printf("老寿星\n");

	return 0;
}

if与else后面不可以接分号,else后面不可以接语句

C语言中 0为真

             非0为假

 

1.2、悬空else 1.3 switch语句

switch语句是分支语句,常用于多分支

比如: 输入 1 ,输出星期一 输入 2 ,输出星期二 输入 3 ,输出星期三 输入 4 ,输出星期四 输入 5 ,输出星期五 输入 6 ,输出星期六 输入 7 ,输出星期日

 语句项是什么呢?

 按理说,我输入的是1,打印出来的却是星期一。



星期六 星期天。

出现这种情况是没有用到break让它停下来

下面使用break

#include 
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;
}

 

这是由于break是跳出本次循环的原因

如果想要输入1-5显示工作日,6-7显示周末,但是8之后呢

 这里我么们可以用default

#include 
int main()//简化并且超出使用default显示错误
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("星期天\n");
		break;
	default:
		printf("输入错误\n");
		break;
	}
	return 0;
}

switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。

以,每个 switch 语句中只能出现一条 default 子句。

但是它可以出现在语句列表的任何位置,而且语句流会像执行一个 case 标签一样执行 default 子句。

二、循环语句 2.1 whie语句

比如我们实现:

 上面的代码已经帮我了解了 while 语句的基本语法,那我们再了解一下:

//while循环中的

//break是用于永久的终止循环

//continue 跳过本次循环后面的代码,直接去判断部分,进行下一次循环的判断

 2.1.1 getchar( )与putchar( )

getchar和putchar其实就是两个函数,一个用来输入字符,一个用来输出字符的

 

 getchar函数读取成功时,它的返回值类型是int型,当它读取错误,或者一个结束符号,它就会返回EOF; EOF( end of file),EOF的值为-1。

 读一个字符,打印一个

 

这边失败是因为后买你有回车(\n)被下面读取了

我们可以在printf()前加getchar()读取回车(\n)

 如果缓冲区中有多个字符需要读取,那么一个个加getchar()是不是过于麻烦????

下面有一种方法

 一直读取到\n才停下来

//代码2
#include 
int main()
{
    char ch = '\0';
 while ((ch = getchar()) != EOF)
 {
     if (ch < ‘0’ || ch > ‘9’)
        continue;
     putchar(ch);
 }
 return 0; }
//这个代码的作用是:只打印数字字符,跳过其他字符的、
三、结束语

预计下一篇分支循环结束,如有错误,还请斧正

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/674309.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存