笔记6分支循环

关系运算

将2该值进行比较,真为1,假为0

1.运算符种类    <     <=      >      >=   优先级相同(优先级第8组) 

                      ==   !=   优先级相同(优先级第9组)

     eg:    10+20 > 30 //比较算术表达式和常量的值,为0
              (a=20)>(b=30) //比较两个赋值表达式的值,为0

2.注意:对于a<b<c的运算,先将a<b计算得0或1,再将值与c比较,而不是平常的理解。

★ 关系表达式的值可以做为整型参与运算
★ 实数参与关系运算时要考虑误差

3.判断数是否相等

   ● 用==(辨别与=的区别)判断实型数是否相等,某些情况下可能与预期结果不符合,因此禁用
   ● fabs()函数是通用的保证实型数误差方法,但是使用时不要超过有效位数限(超范围会使值不准确)

   eg:  float b=1.1f;
            cout << (b==1.1) << endl;                   0(猜测进行了类型转换导致float后位数不准确)
            cout << (fabs(b-1.1)<1e-6) << endl;   1(fabs是专用的求绝对值的函数,加括号猜测与优                                                                                 先级有关)

逻辑运算

1.逻辑常量:true / false

   逻辑变量:bool

   ★ 在内存中占1个字节,表示为整型值,取值只有(true=1/false=0)     sizeof(bool) => 1

   ★ cin时只能输入0/1,输出时按整型量进行处理

   ★ 赋值及运算时,按"非0为真零为假"的原则进行(不是按照高位舍,低位赋值的规则。可设计程         序如:bool k;    k=256;(低位为0)cout << k << endl;   可得结果为1)

2.逻辑运算符

    &&(与)(第13组)                  ||(或)(第14组)            !(非)(单目,第3组) 

    例:4 && 0 || 2 = 1

  ★ (短路运算)仅当必须执行下一个逻辑运算符才能求出解时,才执行该运算符,否则不执行

       a&&b&&c 若a=0,值必为0,b,c不求解
       a||b||c 若a=1,值必为1,b,c不求

  ★ 容易犯的错误:表示 t在(70,80]之间
      错误:70<t<=80(前面的式子值为0或1,故输入任何数都会得到1)          正确:t>70 && t<=80

  ★★★ 常见的等价表示
       a==0 <=> !a                a!=0 <=> a

例题:若某年是闰年,则符合下列两个条件之一
(1)被4整除,不被100整除
(2)被4整除,又被400整除
各种形式的表示:
(year%4==0)&&(year%100!=0)||(year%4==0)&&(year%400==0)
(year%4==0)&&(year%100!=0)||(year%400==0)
(year%4==0)&&(year%100)||(year%400==0)
!(year%4)&&(year%100)||!(year%400)
!(year%4)&& year%100 ||!(year%400)
真:闰年
假:非闰年

选择结构

if语句

单支:if(表达式){                ★表达式后不能跟分号,表达式为真才执行,为假不执行

              语句序列;             ★若只有一个语句,则大括号可以省略

               }

双支:if(表达式1){               ★ 当表达式为真时执行语句序列1,为假则执行语句序列2

             语句序列;               ★ 整个双支语句可以作为一个语句来看待

                     }                      ★  中间不允许插入任何的其它语句

           else{                      ★★★若不带大括号,缺省执行一个语句

                语句序列;

                       }

多支:if(  )                           若1对,执行1,跳出

           else if( )                    若1错,判断2

           else if( )

           else                          若以上全错,执行else,跳出

注意:if不一定有else,但else一定有if

表达式1 ?表达式2 :表达式3(唯一的三目运算符,优先级第15组)

  1与2与3可以不是同一类型,但2与3必须是同一类型(否则无法确定条件表达式的值类型)

switch语句

switch(整型表达式) {                   ★ 表达式可以是任何类型,最终取值为整型即可
        case 整型常量表达式1:    ★ 当整型表达式的取值与整型常量表达式1-n中的任意一个相等时,
                语句序列1;                    执行对应的语句序列;否则执行default后的语句序列(不能是实
        case 整型常量表达式2:         型数,因为无法直接判断相等)
                语句序列2;               ★ 各整型常量表达式的值应各不相同,但顺序无要求

        ...                                        ★ 各语句序列的最后一句应是break,否则连续执行下一case语句
        case 整型常量表达式n:        (最后一个default可省)
                语句序列n;               ★ 语句序列不必加{}
        default:                            ★ 不能完全替代多重if语句的嵌套(无法处理小数)
                语句序列n+1;           ★★★不能处理小数

}笔记6分支循环

 循环结构

1.goto语句(无条件转换到语句处)

    结构:goto 语句标号;

当型

笔记6分支循环

 直到型:

思考题答案个人认为是改为:i <= 99 笔记6分支循环

 2.while语句

 形式:while(表达式){                     ★ 先判断,后执行,表达式可以是任意类型,按逻辑值求解

                语句序列;                         (非0为真0为假),为真时反复执行

                }                                      ★ 语句序列中应有改变表达式取值的语句,否则死循环

                                   eg

 笔记6分支循环

3. do-while语句

 形式:do{

                语句序列;

                }while(表达式);

 4.for语句

形式:for(表达式1;表达式2;表达式3){              执行过程:①求表达式1的值(初值)

          循环变量赋初值;循环条件;循环变量增值     表达式均可省,要在适当位置添句子,但分号不能

                语句序列;                                                    ② 以逻辑值解表达式2,为真则执行循环体

                }                                                                  ③ 执行完循环体后,解表达式3,重复②

等价于:while(语句2){

                                语句序列;

                                表达式3;

                                }

                   eg

--i是因为多加了一次笔记6分支循环

 5.break语句

 ★ 无条件结束循环体,因此必须和if/else语句一起使用才能体现实际的意义

 ★ 当多重循环嵌套时,break仅跳出本层循环

★ 若出现循环和switch语句的嵌套,则break的位置决定了跳转的位置

6.continue语句

★ 若出现循环和switch语句的嵌套,则continue只对循环体有效

★ for语句中若出现continue,则先执行表达式3,再去判断表达式2是否应该继续执行

★结束本次循环,进行下一次是否执行循环的判断

eg

笔记6分支循环

上一篇:数据库第三章


下一篇:SQL集合运算(并、交、差)