C/C++基础----判断和循环

本文详细介绍了C++中的if-elseif-else条件判断,逻辑与关系运算,以及switch、for、while、dowhile等循环结构的用法和示例,帮助读者理解编程中的控制流程。
摘要由CSDN通过智能技术生成

判断

if-elseif-else判断

  • 语句:
    • 条件使用之前的逻辑运算符或者关系运算符
    if(条件1){
    	条件1成立时内容
    }else if(条件2){
    	条件2成立时内容
    }else{
    	所有条件不成立时内容
    }
    
    #include <iostream>
    
    using namespace std;
    
    int main() {
        int age = 10;
        if (age > 18) {
            cout << "成年了" << endl;
        }else{
            cout << "没成年" << endl;
        }
        return 0;
    }
    
    • 多个判断
    #include <iostream>
    
    using namespace std;
    
    int main() {
        int age = 18;
        bool is_have_id = true;
        // age >= 18 并且 is_have_id为true都成立时条件才会成立
        if (age >= 18 && is_have_id) {
            cout << "成年了,可以去网吧" << endl;
        }else{
            cout << "没成年" << endl;
        }
        return 0;
    }
    
    • else if第二个判断
    #include <iostream>
    
    using namespace std;
    
    int main() {
        int age = 18;
        bool is_have_id = false;
        // age >= 18 并且 is_have_id为true都成立时条件才会成立
        if (age >= 18 && is_have_id) {
            cout << "成年了,带了身份证可以去网吧" << endl;
        } else if (age >= 18 && !is_have_id) {
            // age >= 18 并且 is_have_id为flase都成立时条件才会成立
            cout << "成年了,但是没带身份证" << endl;
        } else {
            cout << "没有成年" << endl;
        }
        return 0;
    }
    

switch判断

  • 用户输入数字cin >> 变量;

  • switch语法:

    switch(变量){
    	case 条件1:
    		内容
    		break
    	case 条件2:
    		内容
    		break
    	case 条件……:
    		内容……
    		break
    	default:
    		如果所有条件都不满足就会走default的内容
    }
    
    #include <iostream>
    
    using namespace std;
    
    int main() {
    	// 定义day变量
        int day;
        // 获取用户输入
        cin >> day;
        // 把day传入switch
        switch (day) {
        	// 如果day为1则输出星期一
            case 1:
                cout << "星期一" << endl;
                // 结束switch
                break;
            case 2:
                cout << "星期二" << endl;
                break;
            case 3:
                cout << "星期三" << endl;
                break;
            case 4:
                cout << "星期四" << endl;
                break;
            case 5:
                cout << "星期五" << endl;
                break;
            case 6:
                cout << "星期六" << endl;
                break;
            case 7:
                cout << "星期天" << endl;
                break;
            default:
                cout << "未知输入" << endl;
                break;
        }
        return 0;
    }
    

    在这里插入图片描述

如果不写break会怎么样?

  • 假设我们把case 6的break去掉
    在这里插入图片描述
  • 当输入5的时候进入case 5打印星期五,但是没有break会继续往下走直到遇见break,也就打印出了星期六,如果不写break,switch会穿透

结合goto使用

  • 我们每次输入完,程序执行一次就退出了,怎样才能循环使用,想退出的时候再退出?
  • 使用goto跳转到标记点
  • 语法:
    标记名:
    代码
    goto 标记名;
    
    #include <iostream>
    
    using namespace std;
    
    int main() {
        int day;
        // 打入标记
        switch_while:
        cout << "请输入星期几" << endl;
        cin >> day;
        switch (day) {
            case 1:
                cout << "星期一" << endl;
                break;
            case 2:
                cout << "星期二" << endl;
                break;
            case 3:
                cout << "星期三" << endl;
                break;
            case 4:
                cout << "星期四" << endl;
                break;
            case 5:
                cout << "星期五" << endl;
                break;
            case 6:
                cout << "星期六" << endl;
                break;
            case 7:
                cout << "星期天" << endl;
                break;
            case 8:
                cout << "退出程序" << endl;
                break;
            default:
                cout << "非法输入" << endl;
                // 清除输入流错误标记
                cin.clear(); 
                // 取走刚才输入流中的字符
                cin.ignore(1024,'\n');
                break;
        }
    	// 如果输入不为8则goto到标记的地方重新执行
        if (day != 8) {
            goto switch_while;
        }
        return 0;
    }
    

循环

for循环

  • 语法:
    for (定义局部变量i;条件;条件变化){
    	条件满足时执行的内容,直到条件不满足
    }
    
  • 例子:打印1~100的和
    #include <iostream>
    
    using namespace std;
    
    int main() {
        int result = 0;
        for (int i = 0; i <= 100; i++) {
            result += i;
        }
        cout << result << endl;
        return 0;
    }
    
    在这里插入图片描述

while循环

  • 语法:

    while(条件){
    	条件成立时执行的内容,直到条件不成立,如果条件一直成立就一直执行,就是死循环
    }
    
  • 例子:还是打印1~100的和

    #include <iostream>
    
    using namespace std;
    
    int main() {
        int result = 0;
        int i = 0;
        while (i <= 100) {
            result += i;
            i++;
        }
        cout << result << endl;
        return 0;
    }
    

do while

  • 语法:

    do{
    	先执行一次内容,然后判断条件,是否成立。成立执行这里面代码,直到条件不成立
    }while(条件)
    
  • 例子:可以看到条件不满足,但是还是执行了一次

    #include <iostream>
    
    using namespace std;
    
    int main() {
    
        int i = 100;
        do {
            cout << "do执行了" << endl;
        } while (i < 100);
    
        return 0;
    }
    

    在这里插入图片描述

关于三种循环

  • whilefor只有条件成立时才会执行循环内的代码,但是do while会先执行一次再判断条件后续执不执行。

  • 三种循环中 continue; 关键字会跳过此次循环

  • break 关键字会结束循环

  • goto 标签; 也会结束循坏前往标签处继续执行

  • 例子: 计算0~80的偶数和

    #include <iostream>
    
    using namespace std;
    
    int main() {
        int result = 0;
        for (int i = 0; i <= 100; i++) {
            // 如果i / 2 的余数是否不为0  判断是否是偶数
            if (i % 2 != 0) {
                continue;
            }
            // 提前循环到80停止
            if (i > 80) {
                break;
            }
            result += i;
        }
        cout << result << endl;
        return 0;
    }
    

    在这里插入图片描述

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值