c语言switch scanf语句,C语言中scanf函数与switch语句

----------------switch----------------

1)使用格式

switch(表达式){

case 常量表达式1: 语句1;

case 常量表达式2: 语句2; ...

case 常量表达式n: 语句n;

default: 语句n+1;

}

判断月份代码实现

int main(int argc, const char * argv[]) {

//定义变量

int month;

//提示用户输入一个月份

printf("请输入一个月份,范围1-12之间:

");

//接收用户输入的月份

scanf("%d",&month);

//校验

if (month<1 || month>12) {

printf("月份不合法!

");

return 0;

}

//判断处于哪个季节

switch (month) {

case 12:

case 1:

case 2:

printf("冬季,男人最讨厌的季节

");

break;

case 3:

case 4:

case 5:

printf("春季,一个充满生机的季节

");

break;

case 6:

case 7:

case 8:

printf("夏季,一个充满黑丝的季节

");

break;

case 9:

case 10:

case 11:

printf("秋季,一个不安分的季节

");

break;

}

return 0;

}

其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表 达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如 表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

1、switch语句的表达式类型

1)可以放一个整型的变量 int num = 10;switch (num)

2)可以放一个整形常量  switch (10)

3)可以放一个返回值是整型的表达式   switch (5+5),num = 5+5

4)还可以放可以转换为int类型的表达式 switch ('a'+'a')

----------case语句的穿透问题

case语句执行的过程中,一旦进入某个分支后就会一直执行到switch结束。

为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句.

---------if分支和switch分支转换

if语句不一定能转换成switch语句,switch语句一定能转换成if语句

if(表达式)-------case 常量表达式

---------if分支和switch分支的选择

1)分支比较多且无法穷尽或进行大量列举 时最好用if

2)如果分支数量不是很多,但是使用if代码代码量比较大的时候,可以选用switch

if     可以理解为   判断语句   判断性为主

switch            选择语句   选择性为主

---------switch分支值得注意的地方

表达式的类型(case语句后的值)必须是整型或可以转变为整型的值 (byte、short、char和int类型)。

整形变量    整形常量   返回值是整形的表达式   可以装换为int类型的表达式

2) 功能代码部分可以写任意多句。

3) case语句可以有任意多句,可以不用加括号“{}”

4) break关键字的意思是中断,指结束switch语句,break语句为可选。

-----------case值得注意的地方

0) case语句格式: case  常量表达式: (空格和冒号不能省)

1) case的值1、值2...值n只能为常数或常量,不能为变量。

2) 如果放表达式,那么只可以是常量表达式 case 5+5:

3) default语句的位置可以任意放 功能类似于if语句中的else。但是写在最上面会重新一次往下执行4) case的穿透问题,同样适用于 default

5) 如果default语句放到 switch语句的最后,可以不加break

如果不是放到最后,是必须加上break的

6) case的值必须是整数,不能为浮点数。

7) case 语句之后,默认的第一句话不能定义定义变量

如果第一句话非要定义,应该加上大括号

----------------scanf函数(阻塞式函数)----------------

如果使用这个函数,要包含一个头文件 stdio.h

阻塞式的函数:函数执行后,会等待用户的输入,如果用户不输入任何内容,它会一直等待

scanf函数的作用:

从键盘接收用户输入的内容,保存到指定的变量中

scanf函数的格式:

scanf("格式控制符",输入项的地址列表);

scanf注意

1。当有多个 输入项时,各个地址名之间以逗号“,”分隔。输入格式和变量类型要保持一致。

2.scanf函数当遇到回车的时候,会结束执行

3、接收单个变量值的时候,在输入值之前,如果我们输入了空格 回车 tab,都会被忽略

%d%d,要求我们在键盘上输入的时候,输入两个整数,并且以空格或者回车隔开

4,输入完第一个数以后,如果中间添加了回车 空格 tab 都会被忽略

5      %*d按指定格式读入数据但不赋予相应的变量,作用是跳过相应的读入数据

%*d过一个整数

6  此处不允许写%m.nf,但是%mf是可以

7  要求输入分数 确输入了字符 运行结果 0.00000

scanf运行的原理

1)当用户输入内容后,用户输入的内容会被存放到scanf的输入缓冲区中 然后,

scanf函数会根据格式控制的字符的要求,从输入缓冲区依次取它想要的内容

如果 从缓冲区中取得内容和和我们的格式要求一致,则把值存放到变量中

如果格式不一致,则不修改变量的值

2)如果scanf缓冲区中还有内容,则scanf不会提示我们再次输入1、scanf的运行原理

yilizhijiaotianxiashao-yincaiersanshijianduo-p-4726198.html

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

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

相关文章

JadClipse eclipse反编译插件

A.下载JadClipse&#xff0c;http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download&#xff0c;注意选择与eclipse版本一致的版本&#xff0c;我用的是Eclipse3.4&#xff0c;所以选择下载版本net.sf.jadclipse_3.3.0.jar B.下载Jad&#xff0c;http://www.…

Sublime 资源汇总

2019独角兽企业重金招聘Python工程师标准>>> 《sublime text2使用经验》&#xff1a;里面插件的推介和使用、截图。《Sublime Text 2 入门及技巧》&#xff1a;技巧&#xff0c;可惜是4年前的东西了。《Sublime Text 2安装插件方法详解》&#xff1a;介绍了使用 GoA…

c汇编语言程序框架培训,[010][x86汇编语言]学习用户程序的编写(c08.asm)

源程序来源加载程序c08_mbr.asm用户源程序&#xff1a;增加注释;;文件名&#xff1a;c08-2.asm;文件说明&#xff1a;用户程序;创建日期&#xff1a;13:08 2018/5/23;----------------------------------------------------------------------SECTION header vstart0 ;定义用户…

文件共享服务器搭建

详细需求描述1、网络拓扑图如下&#xff1a;2、利用虚拟机实现网络拓扑&#xff0c;要求如下&#xff08;1&#xff09;虚拟机环境使用hostonly&#xff08;2&#xff09;服务器要求&#xff1a;安装Widnwos Server 2008 R2操作系统内存要求&#xff1a;750MB安装五块物理SCSI磁…

当c语言老师遇到网络崩溃,网络教学搞不定?工科教授来支招!

新学期已经到来但是由于新冠病毒肆虐我们不得不在“线上会面”网络远程教学颠覆了传统课堂模式的同时&#xff0c;也为教员们的教学工作带来极大的挑战。想想看&#xff0c;面对一个计算机屏幕滔滔不绝地讲上90分钟&#xff0c;确实需要大量的准备工作。网课平台怎么选&#xf…

在JS函数中执行C#中的函数、字段

1、调用字段 cs文件的代码&#xff1a; public int id 0;protected void Page_Load(object sender, EventArgs e){id 2;} View Codejs页面的代码&#xff1a; function CheckFunc() {alert("<% id%>");} View Code2、调用函数&#xff1a; 在JS函数中访问或执…

计算本年 本月 本周的起始日期

html: <table><tr><td align"right" width"120px"> 销售时间区间:</td><td><select id"ddlChoiceDate" name"ddlChoiceDate" runat"server" onchange"SelectChange(this.value);&quo…

Android查看真机布局,android-外部存储

外部存储&#xff0c;个人理解是在app作用域之外存储&#xff0c;就是数据没有和app做关联&#xff0c;app卸载后&#xff0c;它依旧存在而不再是之前手机本身存储空间和sd卡的区别&#xff0c;现在安卓手机已经不携带可拆卸的SD卡androidManifest.xml 需要写入读写权限简单布局…

android国籍组件,android组件化之路

问题&#xff1a;实际业务变化快&#xff0c;而工程内各个功能模块耦合度太高&#xff0c;不能对功能模块进行快速方便地拆分或组装。团队共同开发中&#xff0c;可能一个文件同时被多人修改&#xff0c;导致每次更新提交代码都需要消耗大量时间去merge代码。每次修改&#xff…

UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数...

lienhua342014-10-12 当一个进程正常或者异常终止时,内核就向其父进程发送 SIGCHLD信号。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用的函数(信号处理程序)。对于这种信号的系统默认动作是忽略它。 在文档“进程控制三部曲”中,我们讲的第三部曲是使用 wait 函…

android代码导入有错误,android新项目导入后进行编译出现cmake错误

问题描述使用as加载并且gradle sync 提示&#xff1a;SIMPLE:error configure同时使用make project提示问题出现的环境背景及自己尝试过哪些方法已经尝试更换过ndk 调整target brinary 然后完全clean project等操作相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)使用g…

BZOJ1652 [Usaco2006 Feb]Treats for the Cows

蒟蒻许久没做题了&#xff0c;然后连动规方程都写不出了。 参照iwtwiioi大神&#xff0c;这样表示区间貌似更方便。 令f[i, j]表示i到j还没卖出去&#xff0c;则 f[i, j] max(f[i 1, j] v[i] * T, f[i, j - 1] v[j] * T) &#xff08;←这样用推的方式更好想一点。。&#…

git+jekyll部署备忘

github&#xff0c;会自动帮忙编译jekyll编写的文件&#xff0c;只要将文件放到gh-pages分支 (或者使用官方教程的二级域名方式&#xff0c;项目名字&#xff0c;可以随便起&#xff0c;官网的例子是 用户名.github.com 作为项目名字&#xff0c;可以使用 用户名.github.com …

搜索 由浅入深 之一 水题

搜索很重要&#xff0c;是很难学的算法&#xff0c;能看懂很简单&#xff0c;但是要想真正做出题来就比较困难了&#xff0c;那么&#xff0c;我们现在就水题开始研究搜索。 水题之&#xff1a; 1024: [SCOI2009]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 830 …

android studio创建文件,如何在Android Studio中创建File Templates

标签&#xff1a; File Template Android Studio我发现一个可以让写程序变得简单的方法&#xff0c;那就是自定义文件模板(Custom File Templates).那么什么是File Templates呢&#xff1f;说白了&#xff0c;就是一个已经包含一部分代码的源文件如何创建File Templates首先&am…

odoo 中多币种处理(外币处理)

2019独角兽企业重金招聘Python工程师标准>>> 1. odoo多币种处理 http://www.cnblogs.com/godzone/archive/2012/11/05/2754436.html 2. OpenERP的价格表&#xff08;Pricelist&#xff09;机制: http://www.chinamaker.net/html/2011/study_1123/78.html 3. odoo …

h5 android数字键盘,【笔记】移动端H5数字键盘input type=number的处理(IOS和Android)...

在Vue中的项目&#xff0c;基于VUX-UI开发&#xff0c;一个常见的需求&#xff1a;1、金额输入框2、弹出数字键盘3、仅支持输入两位小数&#xff0c;限制最大11位数&#xff0c;不允许0开头第一&#xff0c;首先想到额就是在VUX-UI中制定typenumber。--不可行VUX中的文档和代码…

Sybase数据库应用系统调优的五大领域

Sybase数据库应用系统调优的五大领域 2011/3/14/13:49来源&#xff1a;慧聪it网本 文以“某大型商业银行的网上银行系统”这一很具有典型意义的企业级大型Sybase数据库应用系统为例&#xff0c;涉及了数据库应用系统调优的五大领域&#xff1a;压力测试、 应用端调优、服务器端…

android 6.0 ios9谁快,没安卓6.0流畅?iOS 9突飞猛进终于不卡

今天早些时候&#xff0c;iOS 9.1正式发布&#xff0c;改进系统Bug&#xff0c;添加新功能等&#xff0c;但还有不少反应系统流畅了。不知道是否是心里作用的关系&#xff0c;之前不少果粉吐槽iOS 9过于卡顿&#xff0c;苹果也是在一个版本一个版本的改进&#xff0c;这次的iOS…

(UML两个汇总)九种图。

最后总结UML关系&#xff0c;有明确的关系&#xff0c;现在让我们总结一下UML九图。。图往往比文字要直观&#xff0c;因此&#xff0c;当我们开发软件。文件必须是不可或缺的人物&#xff0c;。以下我将这九种图分了一下&#xff1a; 我们还能够将这九种图分为静态图和动态图&…