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

奋斗吧
奋斗吧
擅长邻域:未填写

标签: 第一阶段C++基础入门(黑马程序员)——Day2 博客 51CTO博客

2023-06-23 18:24:05 158浏览

第一阶段C++基础入门(黑马程序员)——Day2,3运算符作用:用于执行代码的运算本章主要学习以下几类运算符:运算符类型作用算术运算符用于处理四则运算赋值运算符用于将表达式的值赋值给变量比较运算符用于表达式的比较,并返回一个真值或假值逻辑运算符用于根据表达式的值返回真值或假值3.1算术运算符作用:用于处理四则运算算术运算符包括以下符号:运算符术语示例结果+正号+33-负号-3-3+加10+515-减10-55*乘10*550/除10/52%取

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语句,以免造成程序混乱

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695