• C++学习记录2



    前言

    续前节C++学习记录1


    三、运算符

    • 作用:用于执行代码的运算
    • 主要运算符有
      在这里插入图片描述

    1. 算术运算符-加减乘除运算

    • 作用:用于处理四则运算

    • 算术运算符包括以下符号:
      在这里插入图片描述
             

    • 注:两个整数相除 ,结果依然是整数,将小数部分去除
      在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	// 加减乘除
    	int a1 = 10;
    	int b1 = 3;
    
    	cout << a1 + b1 << endl;
    	cout << a1 - b1 << endl;
    	cout << a1 * b1 << endl;
    	cout << a1 / b1 << endl;  // 两个整数相除  结果依然是整数,将小数部分去除
    
    	int a2 = 10;
    	int b2 = 20;
    	cout << a2 / b2 << endl;
    
    	int a3 = 10;
    	int b3 = 0;
    	
    	//cout << a3 / b3 << endl; //错误!两个数相除,除数不可以为0
    
    	//两个小数可以相除
    	double d1 = 0.5;
    	double d2 = 0.25;
    	cout << d1 / d2 << endl;//运算的结果也可以是小数
    
    
    	system("pause");
    
    	return 0;
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 总结: 两个数相除,除数不可以为0

           

    2. 算术运算符-取模运算

    • 取模运算符:%

    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	int a1 = 10;
    	int b1 = 3;
    	
    	cout << a1 % b1 << endl;
    
    	int a2 = 10;
    	int b2 = 20;
    
    	cout << a2 % b2 << endl;
    
    	int a3 = 10;
    	int b3 = 0;
    	// 两个数相除 除数不可以为0 所以也做不了取模运算
    	//cout << a3 % b3 << endl; // 错误
    
    	// 两个小数是不可以做取模运算的
    	double d1 = 3.14;
    	double d2 = 1.1;
    
    	//cout << d1 % d2 << endl; 错误
    
    	system("pause");
    
    	return 0;
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    3.算术运算符-递增递减

    运算符术语示例结果
    ++前置递增a2 = 10;b2 = ++a2 * 10;a2 = 11;b2 = 110
    ++后置递增a2 = 10;b2 = a2++ * 10;a2 = 11;b2 = 100
    • 前置递增和后置递增的区别:
    • 前置递增 先让变量+1 然后进行表达式运算
    • 后置递增 先进行表达式运算,后让变量+1
    • 前置递减和后置递减的区别类似于前置递增和后置递增

    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	//一、递增
    	//1、前置递增
    	int a = 10;
    	++a; //让变量+1
    	cout << "a = " << a << endl;
    
    	//2、后置递增
    	int b = 10;
    	b++; //让变量+1
    	cout << "b = " << b << endl;
    
    	//3、前置和后置的区别
    	// 前置递增  先让变量+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 = " << a3 << endl;
    	cout << "b3 = " << b3 << endl;
    
    	//二、递减
    	//1、前置递减
    	int c = 10;
    	--c; //让变量-1
    	cout << "a = " << a << endl;
    
    	//2、后置递减
    	int d = 10;
    	d--; //让变量-1
    	cout << "d = " << d << endl;
    
    	//3、前置和后置的区别
    	// 前置递减  先让变量-1  然后进行表达式运算
    	int c2 = 10;
    	int d2 = --c2 * 10;
    	cout << "c2 = " << c2 << endl;
    	cout << "d2 = " << d2 << endl;
    
    	// 后置递减  先进行表达式运算,后让变量-1
    	int c3 = 10;
    	int d3 = c3-- * 10;
    	cout << "c3 = " << c3 << endl;
    	cout << "d3 = " << d3 << endl;
    
    	system("pause");
    
    	return 0;
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    4.赋值运算符

    • 作用: 用于将表达式的值赋给变量
    • 赋值运算符包括以下几个符号:
      在这里插入图片描述
    #include<iostream>
    using namespace std;
    
    int main() {
    
    	//赋值运算
    
    	// =
    	int a = 10;
    	a = 100;
    	cout << "a = " << a << endl;
    
    	// +=
    	a = 10;
    	a += 2; // a = a + 2;
    	cout << "a = " << a << endl;
    
    	// -=
    	a = 10;
    	a -= 2; // a = a - 2;
    	cout << "a = " << a << endl;
    
    	// *=
    	a = 10;
    	a *= 2; // a = a * 2;
    	cout << "a = " << a << endl;
    
    	//*=
    	a = 10;
    	a /= 2; // a = a / 2;
    	cout << "a = " << a << endl;
    
    	// %=
    	a = 10;
    	a %= 2; // a = a % 2;
    	cout << "a = " << a << endl;
    
    	system("pause");
    
    	return 0;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 运行结果:

    在这里插入图片描述

    5.比较运算符

    • 作用:用于表达式的比较,并返回一个真值或假值
    • 比较运算符有以下符号

    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	//比较运算符
    	// ==
    	int a = 10;
    	int b = 20;
    
    	cout << (a == b) << endl;
    
    	// !=
    
    	cout << (a != b) << endl;
    
    	// >
    
    	cout << (a > b) << endl;
    
    	// <
    
    	cout << (a < b) << endl;
    
    	// >=
    
    	cout << (a >= b) << endl;
    
    	// <=
    
    	cout << (a <= b) << endl;
    
    	system("pause");
    
    	return 0;
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 运行结果:

    在这里插入图片描述

    6.逻辑运算符

    • 作用: 用于根据表达式的值返回真值或假值
    • 逻辑运算符有以下符号:
      在这里插入图片描述

    示例1:逻辑非-运算符:!

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	//逻辑运算符  非  !
    	int a = 10;
    	// 在C++中除了0 都为真
    	cout << !a << endl;
    
    	cout << !!a << endl;
    
    	system("pause");
    
    	return 0;
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 总结: 真变假,假变真
             

    示例2:逻辑与-运算符:&&

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	//一、逻辑运算符  非  !
    	int a = 10;
    	// 在C++中除了0 都为真
    	cout << !a << endl;
    
    	cout << !!a << endl;
    
    	//二、逻辑运算符  与  &&
    	int b = 10;
    
    	cout << "逻辑运算符“与”输出:" << endl;
    	cout << (a && b) << endl;
    
    	a = 0;
    	b = 10;
    
    	cout << (a && b) << endl;
    
    	a = 0;
    	b = 0;
    
    	cout << (a && b) << endl;
    
    	// 同真为真,其余为假
    
    	system("pause");
    
    	return 0;
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 逻辑与总结:同真为真,其余为假

    示例3:逻辑或-运算符:||

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	int a = 10;
    	int b = 10;
    
    	cout << (a || b) << endl;
    
    	a = 0;
    	b = 10;
    
    	cout << (a || b) << endl;
    
    	a = 0;
    	b = 0;
    
    	cout << (a || b) << endl;
    
    	//逻辑或: 同假为假,其余为真
    
    	system("pause");
    
    	return 0;
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 逻辑或总结:同假为假,其余为真

           
           

    四、程序流程结构


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

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

    1.选择结构

    1.1 if语句

    作用:执行满足条件的语句
    if语句的三种形式

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

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

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	// 选择结构  单行if语句
    	// 用户输入分数,如果分数大于600,视为考上一本大学,在屏幕上输出
    	
    	//1、用户输入分数
    	int score = 0;
    	cout << "请输入一个分数: " << endl;
    	cin >> score;
    
    	//2、打印用户输入的分数
    	cout << "您输入的分数为:" << score << endl;
    
    	//3、判断分数是否大于600,如果大于,那么输出
    	//注意事项:if条件后面不要加分号
    
    	if (score > 600)
    	{
    		cout << "恭喜您考上了一本大学" << endl;
    	}
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 注意:if条件表达式后不要加分号

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

    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	// 选择结构-多行if语句
    	// 用户输入分数,如果分数大于600,视为考上一本大学,在屏幕上输出,
    	// 如果未考上一本大学,打印未考上一本大学
    
    	//1、输入考试分数
    	int score = 0;
    	cout << "请输入一个考试分数: " << endl;
    	cin >> score;
    
    	//2、提示用户输入的分数
    	cout << "您输入的分数为:" << score << endl;
    
    	//3、判断  如果分数大于600,打印考试一本,否则打印未考上一本
    	//注意事项:if条件后面不要加分号
    
    	if (score > 600)// 大于600分执行下面大括号中的内容
    	{
    		cout << "恭喜您考上了一本大学!" << endl;
    	}
    	else//不大于600分,执行else后大括号里面的内容
    	{
    		cout << "未考上一本大学" << endl;
    	}
    
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

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

    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	// 选择结构-多条件if语句
    	// 用户输入分数,如果分数大于600,视为考上一本大学,在屏幕上输出
    	// 大于500分,视为考上二本大学,屏幕输出
    	// 大于400分,视为考上三本大学,屏幕输出
    	// 小于等于400分,视为未考上本科,屏幕上输出
    
    	//1、输入考试分数
    	int score = 0;
    	cout << "请输入一个考试分数: " << endl;
    	cin >> score;
    
    	//2、提示用户输入的分数
    	cout << "您输入的分数为:" << score << endl;
    
    	//3、判断  
    	// 如果大于600,考上一本
    	// 如果大于500,考上二本
    	// 如果大于400,考上三本
    	// 前三个都没有满足,未考上本科
    
    	if (score > 600)
    	{
    		cout << "恭喜您考上了一本大学!" << endl;
    	}
    	else if(score >500) //第二个判断
    	{
    		cout << "恭喜您考上了二本大学!" << endl;
    	}
    	else if (score > 400) //第二个判断
    	{
    		cout << "恭喜您考上了三本大学!" << endl;
    	}
    	else
    	{
    		cout << "未考上本科大学,请再接再厉" << endl;
    	}
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    嵌套if语句: 在if语句中,可以嵌套使用if语句,达到更精确的要求

    案例需求:

    • 提示用户输入-个高考考试分数,根据分数做如下判断;
    • 分数如果大于600分视为考上一本,大于500分考上二本,大于400考上三本,其余视为未考上本科;
    • 在一本分数中,如果大于700分,考入北大,大于650分,考入清华,大于600考入人大。
    #include<iostream>
    using namespace std;
    
    int main() {
    
    	/*
     - 提示用户输入-个高考考试分数,根据分数做如下判断;
     - 分数如果大于600分视为考上一本,大于500分考上二本,大于400考上三本,其余视为未考上本科;
     - 在一本分数中,如果大于700分,考入北大,大于650分,考入清华,大于600考入人大。
    	*/
    	// 1、提示输入高考分数
    	int score = 0;
    	cout << "请输入一个高考分数" << endl;
    	cin >> score;
    	// 2、显示高考分数
    	cout << "您输入的高考分数为; " << score << endl;
    
    	// 3、判断
    	// 如果大于600, 一本
    	    // 大于700  北大
    		// 大于650  清华
    		// 其余     人大 
    	// 如果大于500, 二本
    	// 如果大于400, 三本
    	// 其余情况, 未考上本科
    	if (score > 600)
    	{
    		cout << "恭喜您考上了一本!" << endl;
    		if (score > 700)
    		{
    			cout << "您能考入北京大学" << endl;
    		}
    		if (score > 650)
    		{
    			cout << "您能考入清华大学" << endl;
    		}
    		else
    		{
    			cout << "您能考入人民大学" << endl;
    		}
    	}
    	else if (score > 500)
    	{
    		cout << "恭喜您考上了二本!" << endl;
    	}
    	else if (score > 400)
    	{
    		cout << "恭喜您考上了三本!" << endl;
    	}
    	else
    	{
    		cout << "很遗憾,您没有考上本科,请再接再厉。" << endl;
    	}
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    练习案例:三只小猪称体重

    有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	// 三只小猪称体重,判断哪只最重
    
    	//1、创建三只小猪的体重变量
    	int num1 = 0;
    	int num2 = 0;
    	int num3 = 0;
    
    	//2、让用户输入三只小猪的重量
    	cout << "请输入小猪A的体重:" << endl;
    	cin >> num1;
    
    	cout << "请输入小猪B的体重:" << endl;
    	cin >> num2;
    
    	cout << "请输入小猪C的体重:" << endl;
    	cin >> num3;
    
    	cout << "小猪A的体重为:" << num1 << endl;
    	cout << "小猪B的体重为:" << num2 << endl;
    	cout << "小猪C的体重为:" << num3 << endl;
    
    	//3、判断哪只最重
    	// 先判断A和B重量
    	if (num1 > num2) //A比B重
    	{
    		if (num1 > num3) //A比C重
    		{
    			cout << "小猪A最重" << endl;
    		}
    		else //C比A重
    		{
    			cout << "小猪C最重" << endl;
    		}
    
    	}
    	else //B比A重
    	{
    		if (num2 > num3) //B比C重
    		{
    			cout << "小猪B最重" << endl;
    		}
    		else //C比B重
    		{
    			cout << "小猪C最重" << endl;
    		}
    	}
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    1.2 三目运算符

    作用: 通过三目运算符实现简单的判断
    语法: 表达式1? 表达式2:表达式3
    解释:

    • 如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
    • 如果表达式1的值为假,执行表达式3,并返回表达式3的结果。
      在这里插入图片描述
      在这里插入图片描述
    #include<iostream>
    using namespace std;
    
    int main() {
    
    	//三目运算符
    
    	//创建三个变量a b c
    	//将a和b做比较,将变量大的值赋值给变量c
    
    	int a = 10;
    	int b = 20;
    	int c = 0;
    
    	c = (a > b ? a : b);
    
    	cout << "c = " << c << endl;
    
    	//在C++中三目运算符返回的是变量,可以继续赋值
    	(a < b ? a : b) = 100;
    	cout << "a = " << a << endl;
    	cout << "b = " << b << endl;
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    1.3 switch语句

    作用:执行多条件语句
    语法:
    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	//switch语句
    	//给电影打分
    	// 10-9分  经典
    	//  8-7分  非常好
    	//  6-5分  一般
    	// 5分以下 烂片
    	
    	//1、提示用户给电影评分
    	cout << "请给电影进行打分" << endl;
    	//2、用户开始进行打分
    	int score = 0;
    	cin >> score;
    	cout << "您打的分数为:" << score << endl;
    	// 3、根据用户输入的分数来提示用户最后的结果
    	
    	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;
    	}
    	
    	//if 和 switch区别?
    	//switch 缺点,判断时候只能是整型或者字符型,不可以是一个区间
    	//switch 优点,结构清晰,执行效率高
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 注意1:switch语句中的表达式类型只能是整型或者字符型
    • 注意2:case里如果没有break,那么程序会一直向下执行
    • 总结:与if语句比,对于多条件判断是,switch的结构清晰,执行效率高,缺点是switch不可以判断区间

    2.循环结构

    2.1 while循环语句

    **作用:**满足循环条件,执行循环语句
    **语法:**while (循环条件) { 循环语句 }
    解释:== 只要循环条件为真,就执行循环语句 ==

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	//while循环
    	//在屏幕中打印0-9 这10个数字
    	int num = 0;
    	
    	//while()中填入循环条件
    	//注意事项:在写循环一定要避免死循环的出现
    	while (num < 10)
    	{
    		cout << num << endl;
    		num++;
    	}
    
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 注意:在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环

    while循环练习案例:猜数字

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

    #include<iostream>
    using namespace std;
    //time系统头文件包含
    #include<ctime>
    
    int main() {
    
    	// 添加随机数种子
    
    	//1、系统生成随机数种子  作用:利用当前系统时间生成随机数,防止每次随机数都一样
    	srand((unsigned int)time(NULL)); //需要写一个头文件
    	
    	int num = rand() % 100 + 1;  //rand()%100 + 1 生成 0+1 ~99+1 的随机数
    	//cout << num << endl;
    
    	//2、玩家进行猜测
    	int val = 0;   //玩家输入数据
    
    	while (1)
    	{
    		cin >> val;
    
    		//3、判断玩家的猜测
            //猜错  提示猜的结果  过大或者过小  重新返回第2步
    		if (val > num)
    		{
    			cout << "猜测过大" << endl;
    		}
    		else if (val < num)
    		{
    			cout << "猜测过小" << endl;
    		}
    		else
    		{
    			cout << "恭喜您猜对了" << endl;
    			//猜对  退出游戏
    			break;//  break,可以利用关键字来退出当前循环
    		}
    	}
    
    	
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    2.2 do…while循环语句

    • 作用:满足循环语句,执行循环语句
    • 语法:do{循环语句} while(循环条件)
    • 注意:与while的区别在于do…while会先执行一次循环语句,再判断循环条件
      在这里插入图片描述
    #include<iostream>
    using namespace std;
    
    int main() {
    
    	//do...while语句
    	//在屏幕中输入0到9这10个数
    
    	int num = 0;
    
    	do
    	{
    		cout << num << endl;
    		num++;
    	} 
    	while (num < 10);
    
    	//do...while和while循环区别在于:do...while先执行一次循环结构,再判断循环条件
    
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    案例练习:水仙花数

    • 案例描述:水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身
    • 例如:1^3 + 5^3 + 3^3= 153
    • 请利用do…while语句,求出所有3位数中的水仙花数
      在这里插入图片描述
    #include<iostream>
    using namespace std;
    
    #include<ctime>
    
    int main() {
    
    	//1、先打印所有三位数字
    	int num = 100;
    	
    	do
    	{
    		//2、从所有三位数中知道水仙花数
    		int a = 0; //个位
    		int b = 0; //十位
    		int c = 0; //百位
    
    		a = num % 10; //获取数字的个位
    		b = num / 10 % 10; //获取数字的十位
    		c = num / 100; //获取数字的百位
    
    
    		if (a*a*a + b*b*b + c*c*c == num )//如果是水仙花数,才打印
    		{
    			cout << num << endl;
    		}
    		
    		num++;
    	} while (num < 1000);
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    2.3 for循环语句

    • 作用:满足循环条件,执行循环语句
    • 语法:for(起始表达式;条件表达式;末尾循环体){循环语句;}
    #include<iostream>
    using namespace std;
    
    #include<ctime>
    
    int main() {
    	
    	//for循环
    	//从数字0 打印到 数字9
    
    	for (int i = 0; i<10; i++)
    	{
    		cout << i << endl;
    	}//可以看成是下面代码的简化版
    	//15行到25行可以看做是上面四行代码的具体解释
    	/*int i = 0;
    	for (; ; )
    	{
    		if (i >= 10)
    		{
    			break;
    		}
    		cout << i << endl;
    		i++;
    	}*/
    
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    在这里插入图片描述

    练习案例:敲桌子

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

    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    #include<ctime>
    
    int main() {
    
    	//敲桌子案例
    	//1、先输出1~100数字
    	for (int i = 1; i <= 100; i++)
    	{
    		//2、从100个数字中找到特殊数字,打印“敲桌子”
    		//如果是7的倍数、个位有7、或者十位是7,打印敲桌子
    		if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7)//如果是特殊数字,打印敲桌子
    		{
    			cout << "敲桌子" << endl;
    		}
    		else //如果不是特殊数字,才打印数字
    		{
    			cout << i << endl;
    		}
    
    	}
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    2.4 嵌套循环

    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    #include<ctime>
    
    int main() {
    
    	//利用嵌套循环实现星图
    	
    	for (int i = 0; i < 10; i++)//外层循环
    	{
    		// 内层循环
    		//打印一行星图
    		for (int j = 0; j < 10; j++)
    		{
    			cout << "* ";
    		}
    		cout << endl;
    	}
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    练习案例 : 乘法口诀表

    在这里插入图片描述
    在这里插入图片描述
    编程的思路:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    #include<ctime>
    
    int main() {
    
    	//乘法口诀表
    
    	//打印行数
    	for (int i = 1; i <= 9; i++)
    	{
    		//cout << i << endl;
    		for (int j = 1; j <= i; j++)
    		{
    			cout << j << "*" << i << "=" << j*i << "  ";
    		}
    		cout << endl;
    	}
    
    
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    3、跳转语句

    3.1、 break语句

    作用:用于跳出选择结构或者循环结构
    break使用的时机:

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

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    #include<ctime>
    
    int main() {
    
    	//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;//退出switch语句
    	//case 2:
    	//	cout << "您选择的是中等难度" << endl;
    	//	break;
    	//case 3:
    	//	cout << "您选择的是困难难度" << endl;
    	//	break;
    	//default:
    	//	break;
    	//}
    
    
    	//2、出现在循环语句中
    
    	//for (int i = 0; i < 10; i++)
    	//{
    	//	//如果i等于5,退出循环,不再打印
    	//	if (i == 5)
    	//	{
    	//		break;//退出循环
    	//	}
    	//	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;
    	}
    
    	system("pause");
    
    	return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68

    3.2、continue语句

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

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    #include<ctime>
    
    int main() {
    
    	//continue语句
    
    	for (int i = 0; i <= 100; i++)
    	{
    		//如果是奇数输出,偶数不输出
    		if (i % 2 == 0) //0 2 4 6...
    		{
    			continue; //可以筛选条件,执行到此就不再向下执行,执行下次循环
    			//break会退出循环,而continue不会
    		}
    		cout << i << endl;
    	}
    
    	system("pause");
    
    	return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    3.3、goto语句

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

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

    在这里插入图片描述

    #include<iostream>
    using namespace std;
    
    #include<ctime>
    
    int main() {
    
    	//goto语句
    
    	cout << "1、xxxx" << endl;
    
    	cout << "2、xxxx" << endl;
    
    	goto FLAG;
    
    	cout << "3、xxxx" << endl;
    
    	cout << "4、xxxx" << endl;
    
    	FLAG:
    
    	cout << "5、xxxx" << endl;
    
    
    	system("pause");
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    总结

    时隔一个月终于把C++学习2写完了,中间帮老师写东西是真的难,尤其还有毕业一堆事,回到家里学习状态也不是很好。

    • 注:markdown中图片居中加 #pic_center
  • 相关阅读:
    软件测试面试题:目前主要的测试用例设计方法是什么?
    6. 装饰器
    linux多个jdk时,java -version显示的版本有错误
    Python连接MS SQLServer测试
    35 个 Spark 常用算子总结
    30 个数据工程必备的Python 包
    实时监控Mysql等数据库变化_进行数据同步_了解Debezium_--Debezium工作笔记001
    VUE Date类型前端判断动态校验
    小样本利器4. 正则化+数据增强 Mixup Family代码实现
    LAL v0.35.4发布,OBS支持RTMP H265推流,我跟了
  • 原文地址:https://blog.csdn.net/mw_1422102031/article/details/124927434