C++课堂笔记二

C++课堂笔记二

关系运算符,逻辑运算符和逻辑表达式

  1. 关系运算符

    ==, !=, >, <, >=, <= 比较结果是bool类型(只有两种取值,true或false)

  2. true等价于0,false等价于非0的整型值

    1
    2
    int n=true, m=false;
    printf("%d,%d",n,m); //n=1,m=0
  3. 逻辑运算符和逻辑表达式

    有&&,||,!三种,结果是true或false

    :&&

    1
    2
    3
    4
    exp1 && exp2  当且仅当exp1和exp2的值都为真(或非0)时,结果为true
    int n=4;
    n>4 && n<5 //false
    n>=2 && n<5 //true

    :||

    1
    2
    3
    4
    exp1 || exp2 当且仅当exp1和exp2的值都为假(或0)时,结果为false
    int n=4;
    n>4 || n<5 //true
    n<=2 || n>5 //false

    : !

    1
    2
    3
    4
    ! exp exp的值为真(或非0),结果为falseexp值为false0),结果为true
    !(4<5) //false
    !5 //false
    !0 //true

强制类型转换运算符和运算符优先级

  1. 强制类型转换运算符”用于将操作数转换为指定类型

    1
    2
    3
    4
    double f=9.14;
    int n= (int) f; //n=9
    f = n / 2; //f=4.0
    f = double(n) / 2; //f=4.5
  2. 部分运算符的优先级

    1
    2
    3
    4
    5
    高----------------------------------------------------------低
    ++ -- !, * / %, + -, < <= > >= == !=, &&, ||, = += -= *= /= %=

    可以用()改变运算顺序
    printf("%d,%d",a+++b,a); //a+++b等价于(a++)+b

条件分支–if语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if语句
if(表达式1){
语句组1
}
else if (表达式2) {
语句组2
}
.......//可以有多种个 else if
else if (表达式n-1) {
语句组n-1
}
else {
语句组n
} //若所有表达式都为假,则执行语句组n

else总是和最近的if配对
1
2
3
4
5
6
7
8
9
示例:
int a;
scanf("%d",&a);
if(a>0)
if(a%2)
cout<<"good";
else
cout<<"bad"
return 0;

swich语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
switch (表达式) {  //表达式的值必须是整数类型(int ,char.....)
case 常量表达式1//常量表达式必须是整数类型的常量
语句组1
break;
case 常量表达式2
语句组2
break;
.....
case 常量表达式n:
语句组n;
break
default
语句组n+1
}

表达式的值等于哪个常量表达式,就执行相应的语句组;都不相等,则执行default的语句组。可以无default语句