c++自学整理3 选择结构

本文介绍了C++中的三目运算符、switch语句、while和do...while循环,以及嵌套循环的应用。通过实例展示了猜数字游戏和乘法口诀表的实现。强调了switch的多条件判断优势和do...while先执行循环的特点。同时,讨论了goto语句的使用,尽管不推荐在程序中频繁使用。
摘要由CSDN通过智能技术生成

目录

4.1.2 三目运算符

4.1.3 switch语句

while循环练习案例:==猜数字==

4.2.2 do...while循环语句

4.2.4 嵌套循环

练习案例:乘法口诀表

4.3.3 goto语句


 

 

 

4.1.2 三目运算符

作用: 通过三目运算符实现简单的判断

语法:表达式1 ? 表达式2 :表达式3

解释:

如果表达式1的值为真,执行表达式2,并返回表达式2的结果;

如果表达式1的值为假,执行表达式3,并返回表达式3的结果。

 

#include <iostream>
using namespace std;

int main(){

    int a = 10;
    int b = 20;
    int c = 0;

    c = a > b ? a : b;  //给c赋值
    cout <<"c=" << c<<endl;

//C++中三目运算符返回的是变量,可以继续赋值

    (a>b?a:b) = 100;

    cout << "a=" << a <<endl;
    cout << "b=" << b <<endl;
    cout << "c=" << c <<endl;
    return 0;

}

c=20
a=10
b=100
c=20

 

 

4.1.3 switch语句

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

语法:

switch(表达式)

{

    case 结果1:执行语句;break;

    case 结果2:执行语句;break;

    ...

    default:执行语句;break;

}

#include <iostream>
using namespace std;

int main(){

    int s = 0;
    cout <<"score the film" << endl;


    while(1){
        cin >> s;
        switch (s){
        case 10:
        case 9:cout << "classic" << endl;break;
        case 8:cout << "excellent" << endl;break;
        case 7:cout << "good" << endl;break;
        case 6:cout << "just so so" << endl;break;
        default: cout << "bad" << endl;break;

        }
    }

    return 0;

}

注意1:switch语句中表达式类型只能是整型或者字符型

注意2:case里如果没有break,那么程序会一直向下执行

总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间

 

 

 


while循环练习案例:==猜数字==

案例描述:系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏。

 

随机数函数

在实际应用中,通常需要要将随机数的范围限制在 1 到某个值 max 之间,则可以使用以下公式:

int var = rand() % max + 1;

求余数运算符(%)可以获得整除之后的余数。如当 max 为6时,余数将是 0 〜 5,给余数加 1 即可转换为 1 ~ 6。

#include <iostream>
using namespace std;

int main(){

    int a;
    int n = rand()%100+1;
    cout << "Enter the number" << endl;
    cin >> a;
    while(a!=n){
        if(a>n) cout << "The number you enter is too bigger" << endl;
        else cout << "The number you enter is too small" << endl;
        cin >> a;
    }

    cout<< "You are right!" << endl;

    return 0;

}

 

 

 

4.2.2 do...while循环语句

作用: 满足循环条件,执行循环语句

语法: do{ 循环语句 } while(循环条件);

注意:与while的区别在于==do...while会先执行一次循环语句==,再判断循环条件

 

 

4.2.4 嵌套循环

打印图片

#include <iostream>
using namespace std;

int main(){

    int i,j;
    for(i=0;i<10;i++){
        for(j=0;j<10;j++){
            cout << "*" << " ";
        }
        cout << endl;
    }
    return 0;

}

 

* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *

 

  1. 内循环打印完后才换行,又 cout << ""<< endl 本身就带有换行的意思,故可把endl去掉改为cout << "" ;
  2. 若只需换行,则直接cout <<endl 即可。

 

 


练习案例:乘法口诀表

案例描述:利用嵌套循环,实现九九乘法表

#include <iostream>
using namespace std;

int main(){

    int i,j;
    for(i=1;i<=9;i++){
        for(j=1;j<=i;j++){
            cout << j<<" * " <<i <<" = " <<i*j<<" ";
        }
        cout << endl;
    }

    return 0;

}

1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81


 

 

4.3.3 goto语句

作用:可以无条件跳转语句

语法: goto 标记;

解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置

注意:在程序中不建议使用goto语句,以免造成程序流程混乱

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值