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

今日进入程序控制结构部分。
所有程序都只能包含三种控制结构:
顺序结构、选择结构和循环结构。

选择控制:
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  :  语句 2case  常量表达式 n  :  语句 n
       default  :  语句 n+1

看到没,这里的“常量表达式”和“表达式”一起起到了if语句中“表达式”的作用,即判断输入值满足的条件,并选择后续语句去执行。
而且!!【swtich的条件判断是一个萝卜一个坑,死死把控!!】
“常数表达式”:这就已经体现它的严(死)格(板)了,你绝对不能像if那样扯个范围出来。
而且!!!【switch是很勤劳的,只要它从某个语句开始了,它会一直跑下去知道结束。】
为了应对这些问题。switch有三大法宝:

  1. break
  2. 类型转换
  3. 多个case共用一个语句

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

这里写图片描述

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

switchint(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;

    }
 } 

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

明日计划:继续学习其他语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值