首页 > 编程语言 >第一阶段C++基础入门(黑马程序员)——Day2

第一阶段C++基础入门(黑马程序员)——Day2

时间:2023-06-23 16:01:37浏览次数:56  
标签:语句 int Day2 C++ 运算符 程序员 循环 执行 表达式

3 运算符

作用:用于执行代码的运算

本章主要学习以下几类运算符:

运算符类型

作用

算术运算符

用于处理四则运算

赋值运算符

用于将表达式的值赋值给变量

比较运算符

用于表达式的比较,并返回一个真值或假值

逻辑运算符

用于根据表达式的值返回真值或假值

3.1 算术运算符

作用:用于处理四则运算

算术运算符包括以下符号:

运算符

术语

示例

结果

+

正号

+3

3

-

负号

-3

-3

+

10+5

15

-

10-5

5

*

10*5

50

/

10/5

2

%

取模(取余)

10%3

1

++

前置递增

a=2;b=++a;

a=3,b=3

++

后置递增

a=2;b=a++;

a=3,b=2

--

前置递减

a=2;b=--a;

a=1,b=1

--

后置递减

a=2;b=a--;

a=1,b=2

相除:

  • 两个整数相除,结果依然是整数,小数部分去除;
  • 两个小数相除,结果为整数或小数;
  • 两个数相除,除数不可为0,否则报错!

取模:

  • 只有整型变量可以取模运算;
  • 取模运算时,除数不可为0;

3.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=

3.3比较运算符

作用:用于表达式的比较,并返回一个真值或假值

比较运算符有以下符号:

运算符

术语

示例

结果

==

相等于

4==3

0

!=

不等于

4!=3

1

<

小于

4<3

0

>

大于

4>3

1

<=

小于等于

4<=3

0

>=

大于等于

4>=3

1

int a = 10;
int b = 20;

cout<<(a==b)<<endl;  //输出0;用括号括起来优先运算

3.4逻辑运算符

作用:用于根据表达式的值返回真值或假值

逻辑运算符有以下符号:

运算符

术语

示例

结果

!

!a

a为假,则a为真;a为真,则a为假

&&

a&&b

a和b都为真,则结果为真,否则为假

||

a||b

如果a和b有一个为真,则结果为真,二者都为假时,结果为假

总结:

  • !假变真,真变假
  • && 同真为真,其余为假
  • || 同假为假,其余为真

 4 程序流程结构

C/C++支持最基本的三种程序运行结构,顺序结构、选择结构、循环结构

  • 顺序结构:程序按顺序执行,不发生跳转
  • 选择结构:依据条件是否满足,有选择的执行相应功能
  • 循环结构:依据条件是否满足,循环多次执行某段代码

4.1 选择结构

4.1.1if语句

作用:执行满足条件的语句

if语句的三种形式

  • 单行格式if语句
  • 多行格式if语句
  • 多条件的if语句

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

第一阶段C++基础入门(黑马程序员)——Day2_C++

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

2、多行格式if语句 if(条件){条件满足执行的语句}else{条件不满足执行的语句}

第一阶段C++基础入门(黑马程序员)——Day2_C++_02

3、多条件的if语句if(条件1){条件1满足执行的语句}else if(条件2){条件2满足执行的语句}...else{都不满足执行的语句}

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

4.1.2三目运算符

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

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

解释

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

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

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

c=(a>b ? a:b);
cout<<"c="<<c<<endl;  //输出C=20

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

4.1.3switch语句

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

语法

switch(表达式)
{
    case 结果1; 执行语句;  break;  //break退出当前分支,不再向下执行
        
    case 结果2; 执行语句;  break;
        
    ...
        
    default: 执行语句;  break;   // default表示以上选择都没有
}

if 和switch区别

  • switch在判断时只能时只能是整型或字符型,不可以是一个区间
  • 与if相比,switch结构清晰,执行效率高,缺点是不能判断区间
int score = 0;
cin>>score;

switch(score)
{
  case 10:
  case 9:
    cout<<"经典"<<endl;
    break;
  case 8:
  case 7:
    cout<<"不错"<<endl;
    break;
  case 6:
  case 5:
    cout<<"一般"<<endl;
    break;
  default:
    cout<<"烂片"<<endl;
    break;
}

注意

  1. switch表达式中的语句只能是整型或字符型;
  2. case里如果没有break,程序会一直向下执行;

4.2循环结构

4.2.1while循环语句

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

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

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

第一阶段C++基础入门(黑马程序员)——Day2_C++_03

int num = 0;
 while (num <10)
 {
   cout<<num<<endl;  //输出数字0-9
   num++;
 }

注意:写循环时要避免死循环;

练习案例:猜数字

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

#include <iostream>
#include<ctime>
using namespace std;

int main()
{
	//添加随机数种子 作用利用当前系统时间生成随机数,防止每次随机数都一样
	srand((unsigned int)time(NULL));
  
	//1、系统生成随机数
	int num = rand() % 100 + 1;         //rand()%100 生成0~99的随机数
	cout << "num=" << num << endl;

	//2、玩家进行猜测
	int num1 = 0;
	cout << "请输入玩家猜测数字:" << endl;
	cin >> num1;

	//3、判断玩家猜测
	while (num1!=num)
	{
		if (num1 < num)
		{
			cout << "输入的数字过小,请重新输入:" << endl;
		}
		else
		{
			cout << "输入的数字过大,请重新输入:" << endl;
		}
		cin >> num1;
	}
	cout << "您已猜中,游戏结束!" << endl;

	system("pause");
	return 0;
}

注意:生成随机数

#include<ctime>

srand((unsigned int)time(NULL));    //添加随机数种子 作用利用当前系统时间生成随机数,防止每次随机数都一样
int num = rand() % 100 + 1;         //rand()%100 生成0~99的随机数

4.2.2do...while语句

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

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

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

第一阶段C++基础入门(黑马程序员)——Day2_C++_04

练习案例:水仙花数

案例描述:水仙花数是一个三位数,它的每个位上的数字的3次幂之和等于它本身,如13+53+33=153请利用do while语句,求出所有3位数中的水仙花数。

#include <iostream>
using namespace std;

int main()
{
	int num = 100;           //从最小的三位数100开始
	do {
		int a = 0, b = 0, c = 0;
		a = num/100;         //获取三位数的百位
		b = (num/10)%10;     //获取三位数的十位
		c = num % 10;        //获取三位数的个位
		if ((a * a * a + b * b * b + c * c * c) == num)
		{
			cout << num << endl;   //153 370  371  407
		}
		num++;
	} while (num < 1000);

	system("pause");
	return 0;
}

4.2.3for循环语句

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

语法:for (起始表达式; 条件表达式; 末尾循环体) { 循环语句; }

for(int i = 0; i<10; i++)
{
  cout<<i<<endl;
}

注意:

  • for循环中的表达式,要用分号进行分割
  • while, do...while, for都是开发中常用的循环语句,for循环结构比较清晰,比较常用

练习案例:敲桌子

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

#include <iostream>
using namespace std;

int main()
{
	for (int i=1;i<=100;i++)
	{
		if ((i % 10 == 7)||(i/10==7)||(i%7==0)) {

			//个位为7、十位为7、7的倍数:打印敲桌子
			cout << "敲桌子" << endl;  
		}
		else {
			cout << i << endl;
		}

	}

	system("pause");
	return 0;
}

4.2.4嵌套循环

作用:在循环体中心再嵌套一层循环,解决一些实际问题

例如我们想在屏幕中打印如下 图片,需要利用嵌套循环

第一阶段C++基础入门(黑马程序员)——Day2_C++_05

#include <iostream>
using namespace std;

int main()
{
	for (int i=0;i<10;i++)          //外层循环
	{
		for (int j = 0; j < 10; j++)  //内层循环
		{
			cout << "* " ;
		}
		cout << endl;
	}

	system("pause");
	return 0;
}

练习案例:乘法口诀表

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

第一阶段C++基础入门(黑马程序员)——Day2_C++_06

观察分析

  • 由图得知该图为9行9列;
  • 列数 * 行数 = 计算结果;
  • 列数 <= 当前行数
#include <iostream>
using namespace std;

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

	system("pause");
	return 0;
}

4.3跳转语句

4.3.1break语句

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

break使用的时机:

  • 出现在switch语句中,作用是终止case并跳出switch
  • 出现在循环语句中,作用是跳出当前的循环语句
  • 出现在嵌套循环中,跳出最近的内层循环语句

4.3.2contiune语句

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

//0——100:奇数输出,偶数不输出

for (int i=0 ;i<100;i++)          
	{
		if (i % 2 == 0)
		{
			continue;   //可以筛选条件,执行到此不再向下执行,执行下一次循环
		}
		cout << i <<endl;
	}

注意:continue并没有使整个循环终止,而break会跳出循环

4.3.3goto语句

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

语法:goto 标记;

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

cout<<"1、第一行代码"<<endl;
cout<<"2、第二行代码"<<endl;
goto FLAG;
cout<<"3、第三行代码"<<endl;
cout<<"4、第四行代码"<<endl;
FLAG:
cout<<"5、第五行代码"<<endl;

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

标签:语句,int,Day2,C++,运算符,程序员,循环,执行,表达式
From: https://blog.51cto.com/u_16154883/6538200

相关文章

  • unreal engine 5.2 c++ 自定义gameplay
    1.新建c++工程2.打开worldsetting3.修改默认GamePlay4.依次新建对应GamePlay替换默认GamePlayDefaultPawnHUDPlayerControllerGameStatePlayerStateSpectatorPawn5.添加AhellogpGameModeBase默认构造函数#include"hellogpGameModeBase.h"#include......
  • 21互联网从业必读中文-C++ 模板(第二版)
    本书介绍    本书第一版大约出版于15年前。起初我们的目的是编写一本对C++工程师有帮助的C++模板权威指南。目前该项目从以下几个方面来看是成功的:它的作用得到了不少读者的认可,也多次被推荐为参考书目,并屡获好评。 第一版已经很老了,虽然其中不少内容对modernC++工......
  • C++面向对象技术与C++课程设计任务书[2023-06-23]
    C++面向对象技术与C++课程设计任务书[2023-06-23]面向对象技术与C++课程设计任务书题目1 小型学籍管理系统班级 21060101~02 指导教师 耿军雪姓名 学号 地点 G1-203 完成时间 2023/6/262023/6/30【目的与要求】1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基......
  • C++面试题 --imxiangzi 看看
    目录语言基础类0.各种类型和0值比较1.指针和引用的区别?2.static和const的用法,(能说出越多越好)(重点)3.externc 作用4.堆和栈的区别6. 头文件中的ifndef/define/endif 干什么用?7. 用struct与class的区别8.派生类与虚函数概述9. 虚函数与纯虚函数区别10.深拷贝与......
  • 原创 C++的校招的面试题,看看你能答对几个?
    嗨~大家好呀,最近后台有人问小谷,C++校招的话,需要了解哪些内容,大家知道的,小谷有求必应的,那么之后我就来周期性更新一下作为一名C++开发工程师要掌握的知识,本期主要介绍一下C++基础知识吧!1、面向对象的三大特性:封装、继承、多态封装:就是把客观事物封装成抽象的类,可以使某个属性只......
  • 宇宙最全面的C++面试题v2.0
    作为一个后端人,是无论如何要对C++有一定了解底。很多同学都对C++有一定的抵触情绪,因为C++知识点繁杂全面,深度与广度俱在,准备面试需要很长的时间。本篇的主要目的是梳理知识脉络,挑选最精华的面试题,以飨读者,事半功倍!准备面试一定要有侧重点,标为❤属于高频考点,需要反复记忆。建议平......
  • C++/C 试题 (面试必看)
    本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。笔试时间90分钟。请考生认真答题,切勿轻视。一、请填写BOOL,float,......
  • C++ 复习要点
    本文总结一下C++面试时常遇到的问题。C++面试中,主要涉及的考点有 关键字极其用法,常考的关键字有const,sizeof,typedef,inline,static,extern,new,delete等等语法问题类型转换指针以及指针和引用的区别面向对象的相关问题,如虚函数机制等泛型编程的相关问题,如模板和......
  • 19道必须掌握的C++面试题
    在面试C++方面的工作时,经常会遇到各种面试题,这对应聘人员的知识掌握能力要求较高。本文将为大家带来的就是19道必须掌握的C++面试题,不要错过哦! 想要快速轻松掌握C++知识,请点击C++微课边学习边实践 问1:请用简单的语言告诉我C++是什么?答:C++是在C语言的基础上开发的一种面向......
  • c++内存分布之虚析构函数
    关于本文代码演示环境:VS2017+32程序虚析构函数是一种特殊的虚函数,可以知道,虚函数影响的内存分布规律应该也适用虚析构函数。看看实际结果。Note,一个类中,虚析构函数只能有一个。本文将展开单一继承和多继承两种情况结论1.虚函数表指针和虚函数表1.1影响虚函数表指......