音乐播放器
Moyv_blog
 
文章 标签
5

Powered by 墨羽 | Theme: Fog

C++编程2

运算符

赋值运算符

作用:用于表达式的值赋给变量
赋值运算符包括以下几个符号:

运算符 术语 示例 结果
= 赋值 a=2; b=3; a=2; b=3;
+= 加等于 a=0; a+=2; a=2;
-= 减等于 a=5; a-=3; a=2;
*= 乘等于 a=2; a*=2; a=4;
/= 除等于 a=4; a/=2; a=2;
%= 模等于 a=3; a%2; a=1;

示例:

int main() {
    //赋值运算符
    // =
    int a = 10;
    a = 100;
    cout << "a = " << a << endl;
    // +=
    a = 10;
    a += 2; // a = a + 2;
    cout << "a = " << a << endl;
    // -=
    a = 10;
    a -= 2; // a = a - 2
    cout << "a = " << a << endl;
    // *=
    a = 10;
    a *= 2; // a = a * 2
    cout << "a = " << a << endl;
    // /=
    a = 10;
    a /= 2; // a = a / 2;
    cout << "a = " << a << endl;
    // %=
    a = 10;
    a %= 2; // a = a % 2;
    cout << "a = " << a << endl;
    system("pause");
    return 0;
}

比较运算符

作用:用于表达式的比较,并返回一个真值或假值
比较运算符有以下符号:

运算符 术语 示例 结果
== 相等于 4 == 3 0
!= 不等于 4 != 3 1
< 小于 4 < 3 0
> 大于 4 > 3 1
<= 小于等于 4 <= 3 0
>= 大于等于 4 >= 1 1

示例:

int main() {
    int a = 10;
    int b = 20;
    cout << (a == b) << endl; // 0
    cout << (a != b) << endl; // 1
    cout << (a > b) << endl; // 0
    cout << (a < b) << endl; // 1
    cout << (a >= b) << endl; // 0
    cout << (a <= b) << endl; // 1
    system("pause");
    return 0;
}

注意:C和C++ 语言的比较运算中, “真”用数字“1”来表示, “假”用数字“0”来表示。

逻辑运算符

作用:用于根据表达式的值返回真值或假值
逻辑运算符有以下符号:

运算符 术语 示例 结果
! 非 !a 如果a为假,则!a为真; 如果a为真,则!a为假。
&& 与 a && b 如果a和b都为真,则结果为真,否则为假。
|| 或 a || b 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。

示例1:逻辑非

//逻辑运算符 --- 非
int main() {
    int a = 10;
    cout << !a << endl; // 0
    cout << !!a << endl; // 1
    system("pause");
    return 0;
}

总结: 真变假,假变真

示例2:逻辑与

//逻辑运算符 --- 与
int main() {
    int a = 10;
    int b = 10;
    cout << (a && b) << endl;// 1
    a = 10;
    b = 0;
    cout << (a && b) << endl;// 0
    a = 0;
    b = 0;
    cout << (a && b) << endl;// 0
    system("pause");
    return 0;
}

总结:逻辑运算符总结: 同真为真,其余为假

示例3:逻辑或

//逻辑运算符 --- 或
int main() {
    int a = 10;
    int b = 10;
    cout << (a || b) << endl;// 1
    a = 10;
    b = 0;
    cout << (a || b) << endl;// 1
    a = 0;
    b = 0;
    cout << (a || b) << endl;// 0
    system("pause");
    return 0;
}

逻辑运算符总结: 同假为假,其余为真

程序流程结构

C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
顺序结构:程序按顺序执行,不发生跳转
选择结构:依据条件是否满足,有选择的执行相应功能
循环结构:依据条件是否满足,循环多次执行某段代码

选择结构

if语句

作用:执行满足条件的语句
if语句的三种形式

  • 单行格式if语句
  • 多行格式if语句
  • 多条件的if语句
  1. 单行格式if语句: if(条件){ 条件满足执行的语句 }

示例:

int main() {
    //选择结构-单行if语句
    //输入一个分数,如果分数大于600分,视为考上一本大学,并在屏幕上打印
    int score = 0;
    cout << "请输入一个分数:" << endl;
    cin >> score;
    cout << "您输入的分数为: " << score << endl;
    //if语句
    //注意事项,在if判断语句后面,不要加分号
    if (score > 600){
        cout << "我考上了一本大学!!!" << endl;
        }
    system("pause");
    return 0;
}

注意:if条件表达式后不要加分号

  1. 多行格式if语句: if(条件){ 条件满足执行的语句 }else{ 条件不满足执行的语句 };
    示例:
int main() {
    int score = 0;
    cout << "请输入考试分数:" << endl;
    cin >> score;
    if (score > 600){
        cout << "我考上了一本大学" << endl;
        }else{
        cout << "我未考上一本大学" << endl;
        }
    system("pause");
    return 0;
}
  1. 多条件的if语句: if(条件1){ 条件1满足执行的语句 }else if(条件2){条件2满足执行的语句}... else{ 都不满足执行的语句}
    示例:
int main() {
    int score = 0;
    cout << "请输入考试分数:" << endl;
    cin >> score;
    if (score > 600){
        cout << "我考上了一本大学" << endl;
    }
    else if (score > 500){
        cout << "我考上了二本大学" << endl;
    }
    else if (score > 400){
        cout << "我考上了三本大学" << endl;
    }
    else{
        cout << "我未考上本科" << endl;
    }
    system("pause");
    return 0;
}

嵌套if语句:在if语句中,可以嵌套使用if语句,达到更精确的条件判断

案例需求

  • 提示用户输入一个高考考试分数,根据分数做如下判断
  • 分数如果大于600分视为考上一本,大于500分考上二本,大于400考上三本,其余视为未考上本科;
  • 在一本分数中,如果大于700分,考入北大,大于650分,考入清华,大于600考入人大。
    示例:
int main() {
    int score = 0;
    cout << "请输入考试分数:" << endl;
    cin >> score;
    if (score > 600){
        cout << "我考上了一本大学" << endl;
        if (score > 700){
            cout << "我考上了北大" << endl;
        }
        else if (score > 650){
            cout << "我考上了清华" << endl;
        }
        else{
            cout << "我考上了人大" << endl;
        }
    }
    else if (score > 500){
        cout << "我考上了二本大学" << endl;
    }
    else if (score > 400){
        cout << "我考上了三本大学" << endl;
    }
    else{
        cout << "我未考上本科" << endl;
    }
    system("pause");
    return 0;
}

练习案例: 三只小猪称体重
有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?

三目运算符

作用: 通过三目运算符实现简单的判断
语法: 表达式1 ? 表达式2 :表达式3
解释

  • 如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
  • 如果表达式1的值为假,执行表达式3,并返回表达式3的结果。
    示例:
int main() {
    int a = 10;
    int b = 20;
    int c = 0;
    c = a > b ? a : b;
    cout << "c = " << c << endl;
    //C++中三目运算符返回的是变量,可以继续赋值
    (a > b ? a : b) = 100;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "c = " << c << endl;
    system("pause");
    return 0;
}

总结:和if语句比较,三目运算符优点是短小整洁,缺点是如果用嵌套,结构不清晰

3 switch语句

作用:执行多条件分支语句
语法

switch(表达式){
    case 结果1:执行语句;break;
    case 结果2:执行语句;break;
    ...
    default:执行语句;break;
}

示例:

int main() {
    //请给电影评分
    //10 ~ 9 经典
    // 8 ~ 7 非常好
    // 6 ~ 5 一般
    // 5分以下 烂片
int score = 0;
    cout << "请给电影打分" << endl;
    cin >> score;
    switch (score){
        case 10:
            case 9:
                cout << "经典" << endl;
                break;
        case 8:
            cout << "非常好" << endl;
            break;
        case 7:
            case 6:
                cout << "一般" << endl;
                break;
        default:
            cout << "烂片" << endl;
        break;
    }
    system("pause");
    return 0;
}

注意1:switch语句中表达式类型只能是整型或者字符型
注意2:case里如果没有break,那么程序会一直向下执行
总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间

====