bеb o play 是什么品牌跟UеD有关系吗?

解析C++编程中的选择结构和switch语句的用法
投稿:goldensun
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了解析C++编程中的选择结构和switch语句的用法,是C++入门学习中的基础知识,需要的朋友可以参考下
C++编写选择结构的程序
下面,通过两个实例来说明如何编写较为复杂的C++程序。
【例】编写程序,判断某一年是否为闰年。
#include &iostream&
int main( )
cout&&"please enter year:";//输出提示
cin&& //输入年份
if (year%4==0) //年份能被4整除
if(year%100==0)//年份能被4整除又能被100整除
if (year%400==0)//年份能被4整除又能被400整除
leap=//闰年,令leap=true(真)
} //非闰年,令leap=false(假)
else //年份能被4整除但不能被100整除肯定是闰年
} //是闰年,令leap=true
else //年份不能被4整除肯定不是闰年
leap= //若为非闰年,令leap=false
cout&&year&&" is "; //若leap为真,就输出年份和“是”
cout&&year&&" is not ";//若leap为真,就输出年份和“不是”
cout&&" a leap year."&& //输出“闰年”
运行情况如下:
2005 is not a leap year.
1900 is npt a leap year.
也可以将程序中第8~16行改写成以下的if语句:
if(year%4!=0)
else if(year%100!=0)
else if(year%400!=0)
也可以用一个逻辑表达式包含所有的闰年条件,将上述if语句用下面的if语句代替:
if((year%4 == 0 && year%100 !=0) || (year%400 == 0)) leap=
else leap=
【例】运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:
s&250km 没有折扣
250≤s&500
500≤s&1000
1000≤s&2000
2000≤s&3000
设每公里每吨货物的基本运费为p(price的缩写),货物重为w(wright的缩写),距离为s,折扣为d(discount的缩写),则总运费f(freight的缩写)的计算公式为
f = p * w * s * (1 - d)
据此写出程序如下:
#include &iostream&
int main( )
float p,w,d,f;
cout&&"please enter p,w,s:";
cin&&p&&w&&s;
if(s&=3000)
switch (c)
case 0:d=0;
case 1:d=2;
case 3:d=5;
case 7:d=8;
case 11:d=10;
case 12:d=15;
f=p*w*s*(1-d/100.0);
cout&&"freight="&&f&&
运行情况如下:
please enter p,w,s:100 20 300↙
freight=588000
C++ switch语句(多选分支结构)
switch语句是多分支选择语句,用来实现多分支选择结构。它的一般形式如下:
switch(表达式)
case 常量表达式1:语句1
case 常量表达式2:语句2
case 常量表达式n:语句n
default:语句n+1
例如,要求按照考试成绩的等级打印出百分制分数段,可以用switch语句实现:
switch(grade)
case 'A': cout&&"85~100\n";
case 'B': cout&&"70~84\n";
case 'C': cout&&"60~69\n";
case 'D': cout&&"&60\n";
default: cout&&"error\n";
1) switch后面括号内的“表达式”,允许为任何类型。
2) 当switch表达式的值与某一个case子句中的常量表达式的值相匹配时,就执行此case子句中的内嵌语句,若所有的case子句中的常量表达式的值都不能与switch表达式的值匹配,就执行default子句的内嵌语句。
3) 每一个case表达式的值必须互不相同,否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案)。
4) 各个case和default的出现次序不影响执行结果。例如,可以先出现“default:…”,再出现“case 'D':…”,然后是“case 'A':…”。
5) 执行完一个case子句后,流程控制转移到下一个case子句继续执行。“case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch表达式的值找到与之匹配的case子句,就从此case子句开始执行下去,不再进行判断。例如,上面的例子中,若grade的值等于'A',则将连续输出:
因此,应该在执行一个case子句后,使流程跳出switch结构,即终止switch语句的执行。可以用一个break语句来达到此目的。将上面的switch结构改写如下:
switch(grade)
case 'A': cout&&"85~100\n";
case 'B': cout&&"70~84\n";
case 'C': cout&&"60~69\n";
case 'D': cout&&"&60\n";
default: cout&&"error\n";
最后一个子句(default)可以不加break语句。如果grade的值为'B',则只输出“70~84”。
在case子句中虽然包含一个以上执行语句,但可以不必用花括号括起来,会自动顺序执行本case子句中所有的执行语句。
6) 多个case可以共用一组执行语句,如
case 'C': cout&&"&60\n";
当grade的值为'A'?'B'或'C'时都执行同一组语句。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具&&/&&&&/&&&&/&&
我们已经了解,if&&else&&可以用来描述一个&二岔路口&,我们只能选择其中一条路来继续走。然而,有时候我们会遇到一些&多岔路口&的情况,用if&&else&&语句来描述这种多岔路口会显得非常麻烦,而且容易把思路搅浑。比如程序4.2.2就是一个用if&&else&&语句描述的四岔路口(四种操作符),整个程序占据了将近一页。
如果我们把这些多岔路看作电路,那么用if&&else&&这种&普通双向开关&来选择某一条支路就需要设计一套很复杂的选路器。所以最简便的选路方法当然是做一个像下图那样的开关。(图4.4.1)
在C++中,也有这样的开关,那就是switch语句。它能够很简捷地描述出多岔路口的情况。具体的语法格式为:
switch(表达式)
& &case 常量表达式1:
& & & 语句块1;
& & & break;
& &case 常量表达式n:
& & & 语句块n;
& & & break;
& &default:
& & & 语句块n+1;
在switch语句中,我们要记住四个关键词,分别是switch、case、default和break。switch是语句的特征标志(图中标作sw);case表示当switch后的表达式满足某个case后的常量时,运行该case以后的语句块。要注意,任意两个case后的常量不能相等,否则switch将不知道选择哪条路走。default表示当表达式没有匹配的case时,默认(default)地运行它之后的语句块(图4.4.1中未标出);break表示分岔路已经到头,退出switch语句。
下面,我们就来用switch语句来改写程序4.2.2。箭头表明遇到break以后的运行情况。
#include &iostream.h&
int main()
& &float a,b;
& &cout &&&请输入一个表达式(eg.1+2):& &&
& &cin &&a &&oper &&b;
& &switch (oper)
& & & case '+':
& & & & &cout &&a &&oper &&b &&'=' &&a+b &&
& & & case '-':
& & & & &cout &&a &&oper &&b &&'=' &&a-b &&&
& & & case '*':
& & & & &cout &&a &&oper &&b &&'=' &&a*b &&
& & & case '/':
& & & & &if (b!=0) cout &&a &&oper &&b &&'=' &&a/b &&
& & & & &else cout &&&出错啦!&&&
& & & default:
& & & & &cout &&&出错啦!&&&
& &return 0;
上述程序的运行结果和程序4.2.2的运行结果一样。我们发现使用了switch语句以后,代码的平均缩进程度有所减少,阅读代码的时候更简洁易懂。所以,使用swith语句来描述这种多分支情况是很合适的。
1、如果去除了case对应的break,则运行出来会是什么结果?
结论:如果去除了break,则不会退出switch而运行到别的支路里去。
2、如果程序4.2.2的default没有处在switch的结尾部分,那么运行出来会是什么结果?
结论:switch语句中最后一个分支的break可以省略,其它的break均不可以。
3、case后的常量能否是一个浮点型常量或双精度型常量?
switch的一些使用技巧
返回去看一下程序4.1.2,我们不难发现这个程序也是一个多分支结构。可是switch语句只能判断表达式是否等于某个值,而不能判断它是否处于某个范围。而要我们把处于某个范围中的每个值都作为一句case以后的常量,显然也太麻烦了。那么我们还能不能使用swith语句来描述这种范围型的多分支结构呢?
通过分析,我们发现了主要起区分作用的并不是个位上的数,而是十位上的数。如果我们能把十位上的数取出来,那么最多也就只有十个分支了,不是吗?下面我们就来看一下用switch语句改编的程序4.1.2。
#include &iostream.h&
int main()
& &cout &&&请输入成绩(0~100): &;
& &switch(mark/20)
& & & case 5:
& & & & &if (mark&100)//100到119的情况都是mark/20==5,所以要用if语句再次过滤
& & & & &{
& & & & & & cout &&&ERROR!& &&
& & & & & &
& & & & &}
& & & case 4:
& & & & &cout &&&Good!& &&
& & & case 3:
& & & & &cout &&&Soso& &&
& & & case 2://根据前面试一试的结论,如果case没有对应的break,会运行到下一个case中
& & & case 1:
& & & case 0:
& & & & &if (mark&=0)//同样要用if过滤负数
& & & & &{
& & & & & & cout &&&Please work harder!& &&
& & & & & &
& & & & &}
& & & default://其它情况都是出错
& & & cout &&&ERROR!& &&
& &return 0;
这个程序要比原来的程序4.1.2冗长一些。但是这里提到这个程序的目的是要教会大家一种使用switch的方法,即&以点盖面&。
算法时间:数据的转换
在程序设计中,我们经常会遇到这样的问题:我们希望处理的数据和电脑能够处理的数据可能有所不符。不符合的情况一般有两种,一种是范围不符合,另一种是类型不符合。对于范围不符合,我们一般考虑的是使用代数式对数据进行处理。比如C++中的随机函数能够产生一个0~32768之间的一个整数,如果我们希望得到一个0~10之间的随机数,那么就用它对10取余数,那么结果一定就在这个范围内。对于类型不符合,我们只好尽量用已有的数据类型来描述这种难以表达的类型。就如同电脑中用0和1表示真和假一样。
推荐文章 TOP10魅族手机ADB shell出错 error: device not found
根据网上的贴子,大概是因为某种原因导致安卓adb没有获得魅族手机USB的vender ID,从而无法识别出手机。
二、解决方法
解决方法的思路很简单,获取魅族手机USB的vender ID,然后写入adb对应的配置文件,重启ADB就可以了。
Windows平台
Windows下貌似没有专门获得USB设备的vender ID的系统工具。可以使用USBVIEW.EXE小工具来查看USB设备的详细信息。下载地址在。
在设备管理器里面好像也能看到,但是我不确定。
Linux下可以使用lsusb命令查看USB设备的信息。其中包含USB的Vender ID。
Mac下可以使用system_profiler SPUSBDataType命令,或者在 Mac OS中的 左上角苹果图标-&关于本机-&系统报告-&硬件-&usb来查看USB的Vender ID。
修改配置文件
获得USB的Vender ID以后需要修改配置文件。配置文件在家目录下的.android/文件夹内。关于家目录的路径,Windows平台应该是C:\Users\用户名,Linux平台应该是/home/用户名,Mac平台我不知道。找到adb_usb.ini文件,如果没有就新建一个。然后把刚才查到的Vender ID写在这个文件内,一定要单独写一行,忽略配置文件里的警告信息,然后保存。然后重新启动adb-server:
adb kill-server
adb start-server
此时再使用adb shell命令就可以正常进入手机shell了。
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?C++判断题题库1_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C++判断题题库1
上传于|0|0|文档简介
&&C++判断题题库1
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 b o play p2 的文章

 

随机推荐