C++入门编程二(各类运算符、if、switch、while、for循环等语句)

文章目录

      • 算术运算符
      • 前后置运算符
      • 赋值运算符
      • 比较运算符
      • 逻辑运算符
      • if语句
        • 1、单行if
        • 2、多行if
        • 3、多条件if
        • 4、嵌套if语句
        • 5、案例:三只小猪称体重
      • 三目运算符
      • switch语句
      • while循环语句
        • 案例:1、猜数字
      • do-while循环语句
        • 案例:1、水仙花数
      • for循环语句
        • 案例:1、敲桌子
      • 循环嵌套
        • 案例:1、乘法口诀表
      • break语句
      • continue语句
      • goto语句

基于b站黑马c++视频做的笔记,仅供参考和复习!!!

算术运算符

取模运算’%'的本质是求余数,两个小数不可以做取模运算

	int a1 = 10;
	int b1 = 3;

	cout << a1 + b1 << endl;
	cout << a1 - b1 << endl;
	cout << a1 * b1 << endl;
	cout << a1 / b1 << endl; 	//两个整数相除,结果依然是整数,小数部分去除

	double d1 = 0.5;
	double d2 = 0.22;
	cout << d1 / d2 << endl;	//2.27273

	int a = 15;
	int b = 4;
	cout << a % b << endl;

在这里插入图片描述

前后置运算符

++前置递增 先让变量加1 然后进行表达式运算
后置递增++ 先进行表达式运算 后让变量加1

	//前置递增 先让变量加1 然后进去表达式运算
	int  a2 = 10;
	int b2 = ++a2 * 10;
	cout << "a2= " << a2 << endl;
	cout << "b2= " << b2 << endl;
	
	//后置递增 先进行表达式运算 后让变量加1
	int a3 = 10;
	int b3 = a3++ * 10;
	cout << a3 << endl;
	cout << b3 << endl;

在这里插入图片描述

赋值运算符

=、+=、 -=、 *=

	//赋值运算符 =
	int a = 10;
	a = 100;
	cout << a << endl;	//输出100

	// +=   -=   *=
	int a1 = 5;
	int b = 3;
	int c = 5;

	a1 += 2;	//输出7
	b -= 4;		//输出-1
	c *= 5;		//输出25

比较运算符

== 、 !=、 < 、 >、 <= 、 >=
作用:用于表达式的比较,并返回一个真值或假值,即只返回1或0

	// 比较运算符 ==  !=  <  >  <=  >=
	int a = 10;
	int b = 20;
	cout << (a == b) << endl;   //输出0
	cout << (a != b) << endl;	//输出1

逻辑运算符

与&& 或|| 非!
作用:用于根据表达式的值返回真值或假值。

	//逻辑运算符 非! 与&&  或||
	int a = 1;
	int b = 0;

	cout << !a << endl;		    //0
	cout << (a && b) << endl;	//0
	cout << (a || b) << endl;	//1

if语句

1、单行if
	//选择结构 单行if语句
	int score = 0;
	cout << "请输入您的分数:" << endl;
	cin >> score;

	cout << "您输入的分数为:" << score << endl;
	if (score > 600) {			//if条件后面不要加分号
		cout << "恭喜你考入XXX大学!" << endl;
	}
2、多行if
	//选择结构-多行if语句
	int score = 0;
	cout << "请输入您的分数:" << endl;
	cin >> score;

	cout << "您输入的分数为:" << score << endl;
	if (score > 600) {	//if条件后面不要加分号
		cout << "恭喜您考入广工大!" << endl;
	}
	else{
		cout << "很遗憾,未考入广工大!" << endl;
	}
3、多条件if

if后面要加条件,多条件时,使用else if,else if后面也需要加条件语句, 最后else结尾不需要加条件语句。

	int score = 0;
	cout << "请输入您的分数:" << endl;
	cin >> score;

	cout << "您输入的分数为:" << score << endl;
	if (score > 600){
		cout << "恭喜您考入一本大学" << endl;
	}
	else if(score > 500){
		cout << "恭喜您考上二本大学" << endl;
	}
	else if (score > 400){
		cout << "恭喜您考上三本大学" << endl;
	}
	else{
		cout << "很遗憾,未考上大学" << endl;
	}
4、嵌套if语句
	int score = 0;
	cout << "请输入您的分数:" << endl;
	cin >> score;

	cout << "您输入的分数为:" << score << endl;

	if (score > 600) //if条件后面不要加分号
	{
		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;
	}

5、案例:三只小猪称体重

有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?
思路:先判断其中两个谁大,若第一个大,再与剩下一个做比较;反之,第二个大,也与剩下一个做比较。

	int a = 0, b = 0, c = 0;
	int t = 0;
	cout << "请分别输入三只小猪的体重:" << endl;
	cin >> a;
	cin >> b;
	cin >> c;

	cout << "a小猪的体重是:" << a << endl;
	cout << "b小猪的体重是:" << b << endl;
	cout << "c小猪的体重是:" << c << endl;

	if (a > b){
		if (a > c){
			cout << "a小猪的体重是最大的!" << endl;
		}
		else{
			cout << "c小猪的体重是最大的!" << endl;
		}
	}
	else{
		if (b > c){
			cout << "b小猪的体重是最大的!" << endl;
		}
		else{
			cout << "c小猪的体重是最大的!" << endl;
		}
	}

三目运算符

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

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

	//三目运算符
	int a = 10;
	int b = 21;
	int c = 0;

	//a > b ? c = a : c = b;
	c = (a > b ? a : b);	//如果a>b则返回a变量否则返回b变量
	cout << c << endl;				//输出为21

	//在C++中三目运算符返回的是变量,可以继续赋值
	(a > b ? a : b) = 100;
	cout << "a= " << a << endl;		//a=10
	cout << "b= " << b << endl;		//b=100

switch语句

if和swich的区别:swich缺点,判断时候只能是整型或者字符型,不可以是一个区间。swich优点,结构清晰,效率高

	cout << "请给歌曲进行打分" << endl;
	int score = 0;
	cin >> score;

	cout << "您输入的分数是:" << score << "分" << endl;

	switch (score)
	{
	case 10:
		cout << "您认为是经典歌曲" << endl;
		break;
	case 9:
		cout << "您认为是经典歌曲" << endl;
		break;
	case 8:
		cout << "您认为歌曲非常好听" << endl;
		break;
	case 7:
		cout << "您认为歌曲非常好听" << endl;
		break;
	case 6:
		cout << "您认为歌曲一般" << endl;
		break;
	case 5:
		cout << "您认为歌曲一般" << endl;
		break;
	default:
		cout << "您认为这歌难听" << endl;
		break;
	}

while循环语句

作用:满足循环条件,执行循环语句
语法: while(循环条件){ 循环语句 }

解释:只要循环条件的结果为真,就执行循环语句

	//while循环 在屏幕中打印0~9着10个数字
	int num = 0;
	while (num < 10)
	{
		cout << num << endl;
		num += 1; 				//num++;
	}
案例:1、猜数字

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

	srand((unsigned int)time(NULL));
	int num = rand() % 100 + 1; //生成0~99 + 1的随机数

	cout << "请输入一个数字:" << endl;
	int guess = 0;

	while (1){
		cin >> guess;
		if (guess < num){
			cout << "提示:您输入的数字小了" << endl;
		}
		else if(guess > num){
			cout << "提示:您输入的数字大了" << endl;
		}
		else{
			cout << "恭喜您,猜对啦!" << endl;
			break; //利用该关键字来退出当前循环
		}
	}

srand函数是随机数发生器的初始化函数,time函数来获得系统时间。
time函数的参数为time_t型t变量,可直接传入一个空指针,即: srand((unsigned) time(NULL)); 因为你的程序中往往并不需要经过参数获得的数据。

do-while循环语句

do-while循环语句,始终会先执行一次循环语句

	int num = 0;
	do{
		cout << num << endl;
		num++;
	} 
	while (num < 10);	//while后有逗号
}
案例:1、水仙花数

水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身,例如:1^3 + 5^3+ 3^3 = 153。
请利用do…while语句,求出所有3位数中的水仙花数。

	int num = 100;
	int num1 = 0;
	int num2 = 0;
	int num3 = 0;

	do{
		num1 = num / 100; //获取百位
		num2 = (num % 100) / 10; //获取十位
		num3 = num % 10; //获取个位

		if ((num1*num1*num1 + num2 * num2 * num2 + num3 * num3 * num3) == num){
			cout << num << "是水仙花数" << endl;
		}
		num++;
	} while (num < 1000);

for循环语句

	// for循环 从数字0打印到数字9
	int i = 0;
	for (int i = 0; i < 10; i++)
	{
		cout << i << endl;	
	}
案例:1、敲桌子

从1开始数到数字100, 如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。

	//敲桌子
	for (int i = 1; i <= 100; i++){
		if ((i / 10) == 7 || i % 10 == 7 || (i % 7) == 0){
			cout << "敲桌子" << endl;
		}
		else{
			cout << i << endl;
		}
	}

循环嵌套

	//输出*号方阵
	for (int i = 0; i < 10; i++)
	{
		for (int j = 0; j < 10; j++){
			cout << "* ";
		}
		cout << endl;
	}

在这里插入图片描述

案例:1、乘法口诀表
	//乘法口诀表
	for (int i = 1; i <= 9; i++) //代表行数
	{

		for (int j = 1; j <= i; j++) //代表列数{
			cout << j << "*" << i << "=" << j*i << " ";
		}
		cout << endl;
	}

在这里插入图片描述
按行号进行依次输出

break语句

作用: 用于跳出选择结构或者循环结构

break使用的时机:
(1) 在switch条件语句中,作用是终止case并跳出switch
(2) 在循环语句中,作用是跳出当前的循环语句
(3 )在嵌套循环中,跳出最近的内层循环语句

	//break的使用时机
	//1、出现在switch语句
	cout << "请选择副本难度" << endl;
	cout << "1、普通" << endl;
	cout << "2、中等" << endl;
	cout << "3、困难" << endl;

	int select = 0;

	cin >> select;
	switch(select)
	{
	case 1:
		cout << "您选择的是普通难度" << endl;
		break;
	case 2:
		cout << "您选择的是中等难度" << endl;
		break;
	case 3:
		cout << "您选择的是困难难度" << endl;
		break;
	default:
		cout << "输入错误!请重新输入" << endl;
		break;
	}

	//2、出现在循环语句
	for (int i = 0; i < 10; i++){
		//如果i等于5,退出循环,不再打印
		if (i == 5){
			break;		//输出为0、1、2、3、4
		}
		cout << i << endl;
	}
	
	//3、出现在嵌套语句
	for (int i = 0; i < 10; i++)
	{
		for (int j = 0; j < 10; j++)
		{
			if (j == 5){
				break; //推出内层循环
			}
			cout << "* ";
		}
		cout << endl;
	}

continue语句

在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环。

	//continue不会使得整个循环终止,而break会跳出循环
	for (int i = 0; i <= 100; i++)
	{
		if (i % 2 == 0)  //奇数输出,偶数不输出
		{
			continue;
		}
		cout << i << endl;
	}

goto语句

可以无条件跳转语句,解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置
语法: goto 标记;

	// goto语句
	cout << "1、xxxxx" << endl;

	cout << "2、xxxxx" << endl;
	goto FLAG;					//直接跳转到标志处 输出5、xxxxxx

	cout << "3、xxxxx" << endl;

	cout << "4、xxxxx" << endl;
	FLAG:
	cout << "5、xxxxx" << endl;

注:以上基于黑马程序员C++课程的自用笔记,谢谢!

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

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

相关文章

SAP CO系统配置-获利能力分析-(机器人制造项目实例)

创建经营组织 配置路径 IMG菜单路径:企业结构>定义>控制>创建经营组织 事务代码 KEP8 屏幕截图: 维护特性 配置路径

有没有好用的视频提取文案工具推荐?

在如今这个快节奏的时代中&#xff0c;视频已成为人们记录和分享生活的重要媒介。当然有很多优秀的人&#xff0c;它们创作的视频文案或是演讲的台词、字幕等都非常精彩&#xff1b;难免有时候我们也会借鉴他人的优质内容供自己参考、修改等。那么怎么把这些内容自动提取出来呢…

气动冷凝水回收泵机械浮球泵的特点工作原理介绍 不需要电源

​ 1&#xff1a;气动凝水回收泵机械式介绍 气动冷凝水回收泵是一种设计用于不使用电力来泵送冷凝液、油和其他高温液体等的设备。它无需维护&#xff0c;能将大量凝结水和其它液体从低位、低压或真空场所泵送到高处及高压区域。与传统电泵相比&#xff0c;气动冷凝水回收泵可…

【51单片机系列】DS18B20温度传感器模块

本文是关于温度传感器的相关内容。 文章目录 一、 DS18B20数字温度传感器介绍1.1、 DS18B20温度传感器的特点1.2、DA18B20内部结构1.3、 DS18B20的温度转换规则1.4、 DS18B20的ROM指令表1.6、 计算温度1.7、 读写时序 二、DS18B20使用示例 一、 DS18B20数字温度传感器介绍 DS1…

el-date-picker月选择器获取选择的日期范围

<el-date-pickerv-model"monthValue"type"month"placeholder"选择月"value-format"yyyy-MM-dd"change"monthChange"> </el-date-picker> ​monthChange(val) {const [year, month, day] val.split(-) // 获取对…

视频遥测终端机的设计需求

目录 1.目的 2.参考文件 3.总体描述 4.硬件资源描述 4.1微控制单元 4.2视频处理单元 4.3性能指标 5.功能要求 5.1系统参数要求 5.1.1系统管理 5.1.2系统配置 5.1.2.1一般参数 5.1.2.2编码参数 5.1.2.3网络参数 5.1.2.4网络服务 5.1.2.5OSD参数 5.1.2.6抓拍 5.…

Pytorch深度强化学习2-1:基于价值的强化学习——DQN算法

目录 0 专栏介绍1 基于价值的强化学习2 深度Q网络与Q-learning3 DQN原理分析4 DQN训练实例 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理&#xff0c;并且采用Pytorch框架对常见的强化学习算法、案例进行实现&#xff0c;帮助读者理解并快速上手开发。同时&#xff0c;辅…

基于电商场景的高并发RocketMQ实战-Raft协议的leader选举算法、Broker基于状态机实现的leader选举

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 【11来了】文章导读地址&#xff1a;点击查看文章导读&#xff01; &#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f3…

使用LLaMA-Factory微调ChatGLM3

1、创建虚拟环境 略 2、部署LLaMA-Factory &#xff08;1&#xff09;下载LLaMA-Factory https://github.com/hiyouga/LLaMA-Factory &#xff08;2&#xff09;安装依赖 pip3 install -r requirements.txt&#xff08;3&#xff09;启动LLaMA-Factory的web页面 CUDA_VI…

Mybatis如何兼容各类日志?

文章目录 适配器模式日志模块代理模式1、静态代理模式2、JDK动态代理 JDBC Logger总结 Apache Commons Logging、Log4j、Log4j2、java.util.logging 等是 Java 开发中常用的几款日志框架&#xff0c;这些日志框架来源于不同的开源组织&#xff0c;给用户暴露的接口也有很多不同…

ResNet网络分析与demo实例

参考自 up主的b站链接&#xff1a;霹雳吧啦Wz的个人空间-霹雳吧啦Wz个人主页-哔哩哔哩视频这位大佬的博客 Fun_机器学习,pytorch图像分类,工具箱-CSDN博客 ResNet 详解 原论文地址 [1512.03385] Deep Residual Learning for Image Recognition (arxiv.org) ResNet 网络是在 …

Python、PHP/JAVA/C#电商评论数据采集与分析

引言 在电商竞争日益激烈的情况下&#xff0c;商家既要提高产品质量&#xff0c;又要洞悉客户的想法和需求&#xff0c;关注客户购买商品后的评论&#xff0c;而第三方商家获取商品评价主要依赖于人工收集&#xff0c;不但效率低&#xff0c;而且准确度得不到保障。通过使用Py…

【数据结构和算法】找到最高海拔

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 前缀和的解题模板 2.1.1 最长递增子序列长度 2.1.2 寻找数组中第 k 大的元素 2.1.3 最长公共子序列…

利用MATLAB设计一个(2,1,7)卷积码编译码器

1、条件&#xff1a; 输入数字信号&#xff0c;可以随机产生&#xff0c;也可手动输入 2、要求&#xff1a; &#xff08;1&#xff09;能显示编码树、网格图或状态转移图三者之一&#xff1b; &#xff08;2&#xff09;根据输入数字信号编码生成卷积码并显示&#xf…

如何进行块存储管理

目录 块存储概念 块存储&#xff08;云盘&#xff09;扩容 方式一&#xff1a;直接扩容现有云盘 方式二&#xff1a;创建一块新数据盘 方式三&#xff1a;在更换操作系统时&#xff0c;同时更换系统盘 块存储&#xff08;云盘&#xff09;变配 云盘变配操作步骤 块存储概…

索引进阶 | 再谈 MySQL 的慢 SQL 优化

索引可以提高数据检索的效率&#xff0c;降低数据库的IO成本。 MySQL在300万条记录左右性能开始逐渐下降&#xff0c;虽然官方文档说500~800w记录&#xff0c;所以大数据量建立索引是非常有必要的。 MySQL提供了Explain&#xff0c;用于显示SQL执行的详细信息&#xff0c;可以…

质量免费吗?

本文首发于个人网站「BY林子」&#xff0c;转载请参考版权声明。 两个场景 场景一&#xff1a;有限经费与质量改进 “要写自动化的单元测试、E2E测试&#xff0c;就会需要更多的钱&#xff0c;可是我们经费有限暂时做不了。” “CI上配置SonarQube扫描&#xff0c;对于扫描出来…

godot 报错Unable to initialize Vulkan video driver解决

版本 godot 4.2.1 现象 godot4.2.1 默认使用vulkan驱动&#xff0c;如果再不支持vulkan驱动的主机上&#xff0c;进入引擎编辑器将报错如下 解决 启动参数添加 –rendering-driver opengl3 即可进入引擎编辑器 此时运行项目仍然会报错无法初始化驱动 在项目设置中配置编…

Vue-Pinina基本教程

前言 官网地址&#xff1a;Pinia | The intuitive store for Vue.js (vuejs.org) 看以下内容&#xff0c;需要有vuex的基础&#xff0c;下面很多概念会直接省略&#xff0c;比如state、actions、getters用处含义等 1、什么是Pinina Pinia 是 Vue 的存储库&#xff0c;它允许您跨…

储能:东风已至,破浪在即——安科瑞 顾烊宇

今年的各省政府工作报告已经陆续发布&#xff0c;新能源是各省能源工作的重点&#xff0c;从目前31个省&#xff08;区、市&#xff09;相继公布的2022年经济增长数据来看&#xff0c;一些提前布局新能源产业的省市纷纷交出不错的成绩单&#xff0c;新能源成为当地GDP增速的重要…