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

判断

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;
    }
    

    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/536679.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高云FPGA的管脚约束文件的复制

问&#xff1a;Gowin里面能不能直接拷贝一个管脚约束文件进去用&#xff1f; 答&#xff1a; 可以直接拷贝&#xff0c;但是拷贝前后两个工程对应的芯片必须要是同一个芯片 拷贝方法: 第一步&#xff1a;按照被拷贝约束文件对应的芯片新建一个工程&#xff0c;然后将原工程文…

最强开源多模态生成模型MM-Interleaved:特征同步器突破,多模态生成的终极解决方案

前言 在人工智能领域&#xff0c;多模态生成模型一直是探索的前沿&#xff0c;它跨越了图像与文本之间的界限&#xff0c;开启了一种全新的交互方式。最近&#xff0c;上海人工智能实验室联合香港中文大学多媒体实验室&#xff08;MMLab&#xff09;、清华大学、商汤科技和多伦…

农场大乐斗游戏演示

功能介绍 农场系统 种菜操作&#xff1a;用户可以在农场中种植农作物&#xff0c;并进行浇水、杀虫、除草等维护操作。干旱、虫害、杂草都会影响农作物的生长速度和产量。农作物成熟后&#xff0c;用户需要及时收取&#xff0c;否则会在24小时后枯死&#xff0c;但可通过观看…

java 邮件发送表格

邮件发送表格 问题导入效果图 实现方案1. 拼接HTML文件&#xff08;不推荐&#xff09;2. excel 转HTML使用工具类来转化依赖工具类代码示例 使用已工具包 如 aspose-cells依赖代码示例 3.使用模板生成流程准备模板工具类代码示例 问题导入 在一些定时任务中&#xff0c;经常会…

JavaScript - 你是如何区分一个变量是对象还是数组的

难度级别:中高级及以上 提问概率:65% 我们日常如果想要获得一个变量的类型,大多会使用typeof的方法,但typeof却不是很准确,遇到null、数组或是对象这种数据类型的时候,他就失灵了,返回值是object,那么都有哪些方式可以区分一个变量的类…

浏览器工作原理与实践--同源策略:为什么XMLHttpRequest不能跨域请求资源

通过前面6个模块的介绍&#xff0c;我们已经大致知道浏览器是怎么工作的了&#xff0c;也了解这种工作方式对前端产生了什么样的影响。在这个过程中&#xff0c;我们还穿插介绍了一些浏览器安全相关的内容&#xff0c;不过都比较散&#xff0c;所以最后的5篇文章&#xff0c;我…

C++11的更新介绍(初始化、声明、右值引用)

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;c大冒险 总有光环在陨落&#xff0c;总有新星在闪烁 C11小故事&#xff1a; 19…

酒厂废水总氮超标解决方法,除总氮树脂A-62

首先生化处理通过微生物的作用&#xff0c;将废水中的有机物质降解为无机物质&#xff1b;接着高级氧化&#xff0c;对剩余难以生物降解的有机物进行深度氧化&#xff0c;进一步削减总氮含量&#xff1b;最后&#xff0c;通过TulsimerA-62MP除硝酸盐特种树脂进行深度去除残余的…

FireProx:一款功能强大的AWS API网关管理与IP地址轮换代理工具

关于FireProx FireProx是一款功能强大的AWS API网关安全管理工具&#xff0c;该工具可以帮助广大研究人员创建实现唯一IP地址轮换的实时HTTP转发代理。 在发送网络请求或进行网络交互时&#xff0c;实现源IP地址轮换是一个非常复杂的过程&#xff0c;虽然社区中也有相关的工具…

Ubuntu 22.04进行远程桌面连接

文心一言 Ubuntu 22.04进行远程桌面连接&#xff0c;无论是连接到Windows 10还是另一个Ubuntu 22.04&#xff0c;都可以通过不同的方式实现。以下是具体的步骤&#xff1a; 连接到Windows 10 在Windows 10上开启远程桌面功能&#xff1a;首先&#xff0c;需要在Windows 10上…

Debian 安装 Docker

Debian 安装 Docker。 这是官方安装文档 Install Docker Engine on Debian | Docker DocsLearn how to install Docker Engine on Debian. These instructions cover the different installation methods, how to uninstall, and next steps.https://docs.docker.com/engine/i…

redis消息队列

redis消息队列 redis可以直接实现消息队列&#xff0c;无需学习别的技术 list——本质是链表&#xff0c;数据存储 启动同一个IP和端口的2台客户端&#xff0c;一边阻塞弹出&#xff0c;一边添加元素 在20s内&#xff0c;如果有元素就弹出&#xff0c;没有元素就等待&#xff…

泛域名SSL证书有什么优势?

泛域名SSL证书&#xff0c;又称通配符证书&#xff0c;是一种特殊的数字证书类型&#xff0c;设计用于同时保护一个主域名及其所有同级子域名。具体而言&#xff0c;如果您为某个域名&#xff08;如 example.com&#xff09;申请了泛域名SSL证书&#xff0c;该证书将不仅适用于…

Thingsboard PE 白标的使用

只有专业版支持白标功能。 使用 ThingsBoard Cloud 或安装您自己的平台实例。 一、介绍 ThingsBoard Web 界面提供了简便的操作,让您能够轻松配置您的公司或产品标识和配色方案,无需进行编码工作或重新启动服务。 系统管理员、租户和客户管理员可以根据需要自定义配色方案、…

2024年 Mathorcup高校数学建模竞赛(A题)PCI 规划问题 | 多目标规划解析,小鹿学长带队指引全代码文章与思路

我是鹿鹿学长&#xff0c;就读于上海交通大学&#xff0c;截至目前已经帮200人完成了建模与思路的构建的处理了&#xff5e; 本篇文章是鹿鹿学长经过深度思考&#xff0c;独辟蹊径&#xff0c;通过多目标规划解析解决非法野生动植物贸易问题。结合神经网络、集成学习、贝叶斯网…

Web程序设计-实验02 CSS页面布局

【实验主题】 影视网站前台模板页设计 【实验任务】 1、浏览并分析多个影视网站&#xff08;详见参考资源&#xff0c;建议自行搜索更多影视网站&#xff09;的整体版面布局&#xff0c;对比同一网站不同页面&#xff08;主页、列表页、详情页&#xff09;的元素异同——剔除…

故障诊断 | 基于LSTM的滚动轴承故障诊断

效果 概述 基于LSTM(长短期记忆网络)的滚动轴承故障诊断是一种利用深度学习技术来预测滚动轴承是否存在故障的方法。下面是一个基本的滚动轴承故障诊断的流程: 数据收集:首先,需要收集与滚动轴承相关的振动信号数据。这些数据可以通过传感器或振动监测系统获取。收集的数…

如何对输入信号产生一个固定的时移(CODESYS信号时移FB)

1、同步性问题(跟随给定和跟随反馈的区别) 随动系统同步性问题(跟随给定和跟随反馈的区别)-CSDN博客文章浏览阅读39次。1、运动控制比例随动运动控制比例随动系统_正运动随动系统-CSDN博客PLC如何测量采集编码器的位置数据,不清楚的可以参看我的另一篇博文:三菱FX3U PLC高速…

【绩效管理】建立员工绩效考核机制,提升企业绩效管理水平

随着企业的迅猛发展&#xff0c;其内部管理问题日益突出&#xff0c;已经制约了企业的进一步发展。一方面&#xff0c;员工工作懒散、积极性不高&#xff0c;出错的次数也逐步上升&#xff0c;另一方面&#xff0c;管理者也无法有效评价员工的工作好坏。面对这些问题&#xff0…

计算机网络常见面试总结

文章目录 1. 计算机网络基础1.1 网络分层模型1. OSI 七层模型是什么&#xff1f;每一层的作用是什么&#xff1f;2.TCP/IP 四层模型是什么&#xff1f;每一层的作用是什么&#xff1f;3. 为什么网络要分层&#xff1f; 1.2 常见网络协议1. 应用层有哪些常见的协议&#xff1f;2…