C语言深度解剖-关键字(7)

news2024/9/28 19:18:58

目录

switch case 语句

理解:

补充:

深入理解:

default 语句:

case语句:

总结:

do、while、for 关键字

while

for

do while

各种死循环方法:

while

for

do while

getchar

写在最后:


switch case 语句

理解:

例:

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int day = 0;
	//任何具有判定能力的语法结构,都必须具备:判定+分支
	printf("please choose your day:>");
	scanf("%d", &day);
	switch (day)//整形或者整形表达式
	{
	case 1://case 用来进行判定功能
		printf("星期一\n");
		break;//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");
	}
	return 0;
}

这样我们输入几,输出的就是星期几。

如果:

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int day = 0;
	//任何具有判定能力的语法结构,都必须具备:判定+分支
	printf("please choose your day:>");
	scanf("%d", &day);
	switch (day)//整形或者整形表达式
	{
	case 1://case 用来进行判定功能
		printf("星期一\n");
		//break;//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");
	}
	return 0;
}

输入:

输入:1

输出:

输出:
please choose your day:>1
星期一
星期二
星期三
星期四
星期五

补充:

写这个语句时一定要添加上default 语句,

非常重要,哪怕用不上:

例:

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int day = 0;
	//任何具有判定能力的语法结构,都必须具备:判定+分支
	printf("please choose your day:>");
	scanf("%d", &day);
	switch (day)//整形或者整形表达式
	{
	case 1://case 用来进行判定功能
		printf("星期一\n");
		break;//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");
	}
	return 0;
}

输入:

输入:8

输出:

输出:
please choose your day:>8
输入错误

深入理解:

建议不要用:

例:

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int day = 0;
	//任何具有判定能力的语法结构,都必须具备:判定+分支
	printf("please choose your day:>");
	scanf("%d", &day);
	switch (day)//整形或者整形表达式
	{
	case 1://case 用来进行判定功能
		printf("星期一\n");
		break;//break 用来进行分支功能
	case 2:
	{//如果想执行多条语句,要加{ }
		printf("星期二\n");
		printf("星期三\n");
		printf("星期四\n");
		printf("星期五\n");
	}
		break;	
	case 6:
		printf("星期六\n");
		break;
	case 7:
		printf("星期日\n");
		break;
	default:
		printf("输入错误\n");
	}
	return 0;
}

输入:

输入:2

输出:

输出:
please choose your day:>2
星期二
星期三
星期四
星期五

那如果想要多种情况执行同一条语句呢?

推荐:

例:


#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int day = 0;
	//任何具有判定能力的语法结构,都必须具备:判定+分支
	printf("please choose your day:>");
	scanf("%d", &day);
	switch (day)//整形或者整形表达式
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("周内\n");
		break;
	case 6:
		printf("星期六\n");
		break;
	case 7:
		printf("星期日\n");
		break;
	default:
		printf("输入错误\n");
	}
	return 0;
}

这样无论你输入1 2 3 4 5都会显示周内。

default 语句:

default 它一定要写在最后吗?

不,它放到哪里都可以,

只是我们更习惯放在最后,这样更符合语义。

case语句:

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	const int a = 4;
	switch (a)
	{
	case 4:
		printf("is ok\n");
	}
	return 0;
}

因为用const 修饰后是常量,所以这段代码时编的过去的,

但是:

这种就不行,

一定要注意:

总结:

do、while、for 关键字

while

例:

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int count = 10;//循环条件初始化
	while (count > 0)//循环条件判定
	{
		printf("count = %d\n", count);
		count--;//循环条件更新
	}
	return 0;
}

for

例:

(比较推荐)一目了然

#include <stdio.h>

int main()
{
	for (int i = 0; i < 10; i++)
	{
		printf("i = %d\n", i);
	}
	return 0;
}

do while

例:

#include <stdio.h>

int main()
{
	int count = 10;//循环条件初始化
	do
	{
		printf("count = %d\n", count);
		count--;//循环条件更新
	} while (count > 10);//循环条件判断
	return 0;
}


各种死循环方法:

while

#include <stdio.h>

int main()
{
	while(1)
	{
		printf(".");
	}
	return 0;
}

for

#include <stdio.h>

int main()
{
	while (1)
	{
		int c = getchar();
		if (c == '#')
		{
			break;//结束循环
		}
		printf("%c\n", c);
	}
	printf("while end...\n");
	return 0;
}

do while

#include <stdio.h>

int main()
{
	do
	{
		printf(".");
	} while (1);
	return 0;
}

getchar

例:

#include <stdio.h>

int main()
{
	while (1)
	{
		int c = getchar();
		if (c == '#')
		{
			break;//结束循环
		}
		printf("%c\n", c);
	}
	printf("while end...\n");
	return 0;
}

输出:

 我们发现有点奇怪,

我们只进行了一次换行,但是却换了两行,

因为我们输入字符的时候,按了一下回车,那个回车也被getchar接受了。

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/349361.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业电子招投标采购系统源码之功能模块的描述

功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外部供…

【Spark分布式内存计算框架——Spark SQL】6. 数据处理分析

第四章 数据处理分析 在SparkSQL模块中&#xff0c;将结构化数据封装到DataFrame或Dataset集合中后&#xff0c;提供两种方式分析处理数据&#xff0c;正如前面案例【词频统计WordCount】两种方式&#xff1a; 第一种&#xff1a;DSL&#xff08;domain-specific language&am…

数据库(四)

第五章 MySQL备份恢复 5.1 MySQL日志管理 在数据库保存数据时&#xff0c;有时候不可避免会出现数据丢失或者被破坏&#xff0c;在这样情况下&#xff0c;我们必须保证数据的安全性和完整性&#xff0c;就需要使用日志来查看或者恢复数据了。 数据库中数据丢失或被破坏可能原…

人工智能 LLM 革命前夜:一文读懂ChatGPT缘起的自然语言处理模型Transformer

作者&#xff1a;钟超 阿里集团大淘宝团队 [01] https://web.stanford.edu/~jurafsky/slp3/3.pdf [02] https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html [03] 《自然语言处理&#xff1a;基于预训练模型的方法》车万翔 等著 [04] https://cs.stanfo…

如何系统的、阶段的学习Java开发,真正的从入门到精通

Java 后端有着非常庞大的生态圈&#xff0c;也涉及到很多复杂的问题&#xff0c;如分布式事务、分布式查询、微服务、高并发、容灾、容器化等等&#xff0c;涉及到的技术栈和框架就更多了。不过&#xff0c;我们目前只是为了快速入门&#xff0c;我们只会学习最必要的那些知识&…

ubuntu18.04下pytorch版Maskrcnn编译错误汇总

ubuntu18.04下pytorch版Maskrcnn编译错误汇总1 anconda环境配置2 bug及解决办法2.1 Detected CUDA version (11.2) mismatches the version that was used to compile PyTorch(10.2)2.2 error: legacy-install-failure Encountered error while trying to install package.╰─…

Cron表达式 的含义、相关知识点及相关表达式示例

学习目标&#xff1a; 本篇博文学习目标如下: 掌握 Cron表达式 学习内容&#xff1a; Cron表达式&#xff1a; 1、Cron表达式的含义&#xff1a; Cron表达式是一个具有时间含义的字符串&#xff0c;字符串以5-6个空格隔开&#xff0c;分为6~7个域&#xff0c;格式为X X X X …

一文讲透sparkHistoryServer与yarnHistoryServer关系

1、spark history 和 yarn history 的区别&#xff1f; Spark History Server 和 YARN History Server 是用于查看和分析Spark和YARN 应用程序的执行情况的两个不同的工具。 Spark历史服务器是专门用于Spark应用程序的工具&#xff0c;它提供了一个界面&#xff0c;可以查看S…

移动机器人设计与实践课程大纲

MiR移动机器人参考资料&#xff1a;图一 西北工业大学-课程平台图二 清华大学出版社-移动机器人目前&#xff0c;基本都是双一流大学开设此类课程&#xff0c;并且都是至少3-4学分&#xff0c;16学时/学分&#xff0c;48-64学时。(⊙﹏⊙)&#xff0c;难办了。咱这只有&#xf…

C++学习笔记-数据类型

在用任何语言编写程序时&#xff0c;需要使用各种变量来存储各种信息。 变量只是用于存储值的保留内存位置。 这意味着当创建变量时&#xff0c;在内存中保留了一些空间。 可能希望存储各种数据类型的信息&#xff0c;如字符&#xff0c;宽字符&#xff0c;整数&#xff0c;浮…

测试用例该怎么设计?—— 日常加更篇(下)

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

Revit教程:怎么关掉工具栏的实时提示?

一、Revit中如何关闭工具栏的实时帮助提示 如图1所示&#xff0c;Revit会对每一个命令有一个简单的图文说明&#xff0c;方便不熟悉软件的用户使用。对于已经熟悉软件的用户&#xff0c;会觉得鼠标在菜单上悬停时弹出的实时帮助页面很干扰使用&#xff0c;而且很占内存资源&…

ESP-C3入门10. 创建TCP Client

ESP-C3入门10. 创建TCP Client一、创建 tcp client的一般步骤1. 创建 tcp 套接字2. 配置服务器地址3. 连接服务器4. 发送数据5. 接收数据6. 关闭套接字二、创建tcp_client任务三、示例代码1. tcpClient.h2. tcpClient.c3. main.c一、创建 tcp client的一般步骤 本文示例使用的…

【Redis】Redis 常用数据类型操作 ① ( 数据库操作 | Redis 数据库连接参数 | Redis 数据库个数 | Redis 访问机制 )

文章目录一、Redis 数据库连接参数二、Redis 数据库个数三、Redis 访问机制一、Redis 数据库连接参数 连接 Redis 数据库 , 只需要 IP 地址 , 端口号 , 访问密码 即可 , 如果没有 设置 访问密码 可忽略该选项 ; Redis 默认端口号是 6379 ; 参考 【Redis】Redis 数据库 安装、…

【C语言学习笔记】:折叠表达式

在C中通过折叠表达式可以更容易的在可变参数模板中处理可变参数。 先看一下传统的使用递归方式来处理可变参数的代码&#xff1a; #include <iostream>void print(int i) { std::cout << i << " ";}void func() {}template<typename T1, t…

C++为什么能重夺年度语言?

目录一、爷青回1、年初依旧很多大新闻&#xff0c;其中一条就是TIOBE把年度编程语言颁给了C。2、这是什么概念&#xff1f;那一年Java的流行指数是14%。二、C为什么衰落三、C为什么重新流行1、C为什么重新流行起来了呢&#xff1f;2、C究竟做对了什么呢&#xff1f;3、根本原因…

Python入门自学进阶-Web框架——31、开发客户报名流程

完成客户报名的流程流程大体如下&#xff1a;在已有收集的客户信息基础上——>销售填写报名表&#xff08;报什么班、课程顾问&#xff09;——>自动生成一个链接&#xff0c;让学员填写——>学员填写个人信息&#xff0c;并上传身份照片&#xff0c;同意合同协议——…

墨天轮【第二届数据库掌门人论坛】圆满收官 | 含嘉宾精彩观点回顾

2月10日上午&#xff0c;墨天轮【2023春季发布会暨第二届数据库掌门人论坛】盛大开启&#xff0c;本次活动的主题为“新征程&#xff0c;向未来”&#xff0c;共包含2022年度中国数据库颁奖盛典、2022年度行业发展报告发布以及第二届数据库掌门人论坛三项议程。华为云数据库服务…

win10-右键打开windows terminal

文章目录windows terminal设置右键打开打开注册表添加一个右键选项新建一个项添加右键的名称和图标右键选项执行的命令测试windows terminal windows 新一代命命令行 设置右键打开 打开注册表 WinR 输入&#xff1a; regedit 定位&#xff1a; 计算机\HKEY_CLASSES_ROOT\Di…

中国第一份ERP系统用户实名口碑选型报告(选型宝重磅发布!)

01 报告目录 一、 报告概况 二、 ERP类厂商-用户实名口碑排行 三、 ERP类产品-用户实名口碑对比 四、 主流ERP产品简介 五、 ERP常用功能 六、 算法说明 七、 联系选型宝 02 报告概述 一、报告亮点 这是一份完全由用户实名点评生成的ERP系统选型报告。 报告由选…