您的位置:首页 > 其它

171016—if与switch语句&初次实验。

2017-10-16 22:58 169 查看
今日进入程序控制结构部分。

所有程序都只能包含三种控制结构:

顺序结构、选择结构和循环结构。

选择控制:

1.if语句:

if语句有两种形式:一个分支的if语句 和 两个分支的if-else语句。

1) if (表达式)

{语句块;

} 表达式为逻辑表达式,【若果是其他类型的表达式,则将其结果作为逻辑值处理】这里可以好好理解逻辑表达式的意义!!

#include<iostream>
using namespace std;
int main()//写这个就是为了测试书上所说的:条件语句“若为其他类型表达式,则作为逻辑值处理。
{
int a;
cin>>a;
if(a)
cout<<a<<endl;
else cout<<"哈哈"<<endl;

}


表示执行的条件,当变量

满足这一逻辑表达式时,执行语句,如果不满足,则跳过if这个语句块,去执行后续语句。也就是说,这种if语句可能被执行,也可能不被执行。

2)
if(表达式)

{语句一;

else 语句二;}


这时,if语句有且只有一个被执行。且必须有一个被执行。

·····else不可单独存在,有else必有if。

3)if的嵌套语句:

当处理的情况大于两种的时候,上述两种单独使用不能解决问题时,可以复合起来使用,此式要注意else和if的配对问题。

······else必须与在它上面的,离他最近的,且没有和其他else配对的if配对。

2.switch语句。

说实话我还没特别领悟他用switch命名的含义…….

它用于根据一个整型变量的不同值决定程序分支的情况。

switch ( 表达式 )【表达式为非浮点型数据】
{ case  常量表达式 1  :  语句 1
case  常量表达式 2  :  语句 2
…
case  常量表达式 n  :  语句 n
default  :  语句 n+1


看到没,这里的“常量表达式”和“表达式”一起起到了if语句中“表达式”的作用,即判断输入值满足的条件,并选择后续语句去执行。

而且!!【swtich的条件判断是一个萝卜一个坑,死死把控!!】

“常数表达式”:这就已经体现它的严(死)格(板)了,你绝对不能像if那样扯个范围出来。

而且!!!【switch是很勤劳的,只要它从某个语句开始了,它会一直跑下去知道结束。】

为了应对这些问题。switch有三大法宝:

break

类型转换

多个case共用一个语句

1)在某一语句的末尾加上break即可使程序做完此步运算之后跳出switch语句,化解由于其过于勤奋而造成的尴尬。



2)思考如何表达1≤X<2?因为X是浮点数,当他在12之间是,对其做强制类型转换为整数型数据,则可得到1,这可是个常数啊!,下面的如法炮制,最绝在2≤X<4时,转换出来不是两个数吗?那我就共用一个语句呗。。而这个例子:

switch(int(a>b))
case 1:巴拉巴拉;
case 0:巴拉;


更是很好的体现了类型转换和逻辑表达式的代数值的特点。十分值得玩味。

3.初次实验。

题目:输出四位数中所有的超完全数字不变数。比如1634=1*1*1*1+6*6*6*6+3*3*3*3+4*4*4*4。

昨天刚看到题目,分析可能需要用到if和for的相关结构。呃。。。试着自学写了个for语句。果断失败。

今天再次尝试,一次成型。原码如下:

#include<iostream>
using namespace std;
int main()
{
int x,a,b,c,d,m;
for(x=1000;x<=9999;x++)
{
a=x/1000;
b=(x-a*1000)/100;
c=(x-a*1000-b*100)/10;
d=x-a*1000-b*100-c*10;
m=a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d;
if(m==x)
cout<<m<<endl;

}
}


一旦加了结构。这代码看起开就好多了。

明日计划:继续学习其他语句。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  switch 结构