引言
在上一章我们下载了学习C++的工具,Visual Studio编译器,也学习了一些简单基础的语法,知道了一些C++的相关的背景知识,还有C++的语法基础,我们这节课就来接着学习有关C++的内容。本章的内容有运算符和表达式,以及控制结构。
编写我们的第一个代码Helloworld!
不论是是学习什么计算机语言,往往大家的第一个代码都是helloworld,因为这是最简单的代码,而且可以帮助我们了解创建项目文件流程。
1.找到我们下载好的Visual Studio,并打开
2.选择空项目创建新项目
3.配置项目文件夹
4.打开文件后创建新项,
5.在输入框里输入以下代码
运算符和表达式
在接下来的讲解中,我会在每个小节的后边加上代码讲解,小伙伴们可以把代码自己尝试着输入到编辑器里方便大家学习。
算术运算符
- +加法,-减法,*乘法,/除,%求余。
- 自增,++,使单个变量增加1,++在后,先使用,后计算;++在前,先计算,后使用。
- 自减,–,使单个变量减少1,–在后,先使用,后计算;–在前,先计算,后使用。
- 代码演示
#include <iostream>
using namespace std;
int main()
{
int a = 10, b = 20;
cout << a + b << endl;
float c = 2.2, d = 3.3;
cout << c + d << endl;
a = c + d;
cout << a << endl;
/*
++在后,先使用,后计算
++在前,先计算,后使用
*/
int i = 0, m;
i++;
cout << "i: " << i << endl;
++i;
cout << "i: " << i << endl;
i = 0;
/*
m = i;
i = i + 1;
*/
m = i++;
cout << "m: " << m << " i: " << i << endl;
i = 0;
/*
i = i + 1;
m = i;
*/
m = ++i;
cout << "m: " << m << " i: " << i << endl;
return 0;
}
赋值运算符
- = 赋值,作用是将表达式的值赋给变量。
- 复合赋值运算符,作用是将一个带有变量自身的算术运算表达式的值赋给变量自身。
- +=,-=,*=,/=,%=
- 代码演示
#include <iostream>
using namespace std;
int main()
{
int m = 1, n = 2;
// m = m + 2; 等效于以下代码
m += 2;
cout << "m: " << m << endl;
m += n;
cout << "m: " << m << endl;
m += (n + 2);
cout << "m: " << m << endl;
return 0;
}
关系运算符·
- 大于>, >=大于等于,==等于,!=不等于,小于等于<=,小于<。
- 关系运算符的结果都是bool型。
- 代码演示
#include <iostream>
using namespace std;
int main()
{
int m = 3, n = 5;
char c1 = 'a', c2 = 'b';
bool b = m > n;
cout << "b: " << b << endl;
b = m < n;
cout << "b: " << b << endl;
b = c1 > c2; // c1的ASCII码是97, c2的ASCII码是98. 97 > 98 的结果为false, c1 > c2的结果为false。
cout << "b: " << b << endl;
return 0;
}
逻辑运算符
- 逻辑运算符计算bool类型的数据,结果也是bool类型的数据。
- && 逻辑与运算符;||逻辑或运算符,!逻辑非运算符。
- 逻辑短路
- a && b , 当a为false时,直接返回false,不计算b的值;当a为true时,计算b的值。
- a || b , 当a为true时,直接返回true,不计算b的值;当a为false时,计算b的值。
- 代码演示
#include <iostream>
using namespace std;
int main()
{
int m = 3, n = 5;
bool b;
// 逻辑短路
b = (3 > 5) && (m++ > n); // m++ 不执行
cout << "(3 > 5) && (m++ > n); " << b << " m:" << m << endl;
b = (3 < 5) && (m++ > n); // m++ 执行
cout << "(3 < 5) && (m++ > n); " << b << " m:" << m << endl;
// 逻辑非
cout << "!b:" << !b << endl;
// 单目运算符优先级高于双目运算符,!优先计算,结果为true.
b = 3 < 5 && m > !n;
cout << "3 > 5 && m > n; " << b << endl;
/*
运算符优先级
1.单目运算符。单目运算符是指只有一个运算对象的运算符。
2.双目运算符。双目运算符是指有两个运算对象的运算符。
3.三目运算符。三目运算符是指有三个运算对象的运算符。
*/
return 0;
}
其他运算符
-
逗号运算符
- 一个逗号运算符可以将两个表达式连接起来,取最右侧表达式的结果作为整个表达式的结果。逗号运算符优先级最低。
-
条件运算符
- 语法:表达式1 ? 表达式2 : 表达式3;
- 当表达式1的结果为true,返回表达式2的值;当表达式1的结果为false,返回表达式3的值
-
代码演示
#include <iostream>
using namespace std;
int main()
{
int a = 10, b = 11, c = 12, n;
// 逗号运算符优先级最低,n = ++a是第一个表达式,n的值是11
n = ++a, ++b, ++c;
cout << "n: " << n << endl;
// 从左到右依次计算每个表达式的值,返回最右侧的表达式的值。
n = (++a, ++b, ++c);
cout << "n: " << n << endl;
/*
条件运算符
表达式1 ? 表达式2 : 表达式3;
当表达式1的结果为true,返回表达式2的值;
当表达式1的结果为false,返回表达式3的值;
*/
n = (a > b) ? a : b;
cout << "n: " << n << endl;
return 0;
}
控制结构
- 任何任何程序都是由三种基本结构构成的,顺序,分支,循环。
分支结构
if 单分支结构
- 代码演示
#include <iostream>
using namespace std;
int main()
{
int age = 17;
// if单分支
if (age >= 18)
{
cout << "上网去!" << endl;
}
cout << "回家睡觉" << endl;
// 输入一个成绩,如果不及格,输出"需要补考"
int score;
cin >> score;
if (score < 60)
{
cout << "需要补考" << endl;
}
return 0;
}
if else双分支结构
- 代码演示
#include <iostream>
using namespace std;
int main()
{
int age = 180;
if (age >= 18)
{
cout << "去网吧!" << endl;
}
else
{
cout << "做作业" << endl;
}
cout << "睡觉" << endl;
// 输入两个数,输出其中较大的那个数
int a, b, n;
cin >> a >> b;
if (a > b)
{
n = a;
//cout << a << endl;
}
else
{
n = b;
//cout << b << endl;
}
cout << n << endl;
return 0;
}
else if 多分支结构
- 代码演示
#include <iostream>
using namespace std;
int main()
{
int age = 19;
if (age < 18)
{
cout << "回家写作业" << endl;
}
else if (age < 30)
{
cout << "疯狂拧螺丝" << endl;
}
else if (age < 40)
{
cout << "上班+上有老下有小" << endl;
}
else if (age < 65)
{
cout << "摸鱼" << endl;
}
else
{
cout << "带着孙子跳广场舞" << endl;
}
/*
输入一个成绩[0,100],判断属于哪个等级并输出
A [90, 100]
B [80, 90)
C [70, 80)
D [60, 70)
E [0,60)
*/
int score;
cin >> score;
if(score <= 100)
{
if (score >= 90)
{
cout << "A" << endl;
}
else if (score >= 80)
{
cout << "B" << endl;
}
else if (score >= 70)
{
cout << "C" << endl;
}
else if (score >= 60)
{
cout << "D" << endl;
}
else
{
cout << "E" << endl;
}
}
else
{
cout << "无效的成绩" << endl;
}
return 0;
}
switch 多分支
- switch后的表达式只能是整型、字符型、枚举类型
- case后面必须是常量,可以是数值常量也可以是命名常量
- case语句一般配合break使用,否则会一直执行下去。
- elseif与switch多分支之间的差异
- 代码演示
#include <iostream>
using namespace std;
int main()
{
int n = 1;
/*
switch后的表达式只能是整型、字符型、枚举类型。
case后面必须是常量,可以是数值常量也可以是命名常量。
case语句一般配合break使用,否则会一直执行下去。
*/
switch (n)
{
case 1:
cout << "春" << endl;
break;
case 2:
cout << "夏" << endl;
break;
case 3:
cout << "秋" << endl;
break;
case 4:
cout << "冬" << endl;
break;
default:
cout << "以上条件都不满足";
break;
}
/*
输入一个成绩[0,100],判断属于哪个等级并输出。
要求使用switch多分支实现
A [90, 100]
B [80, 90)
C [70, 80)
D [60, 70)
E [0,60)
*/
int score = 80;
int n = score / 10;
switch (score)
{
case 10:
case 9:
cout << "A" << endl;
break;
case 8:
cout << "B" << endl;
break;
case 7:
cout << "C" << endl;
break;
case 6:
cout << "D" << endl;
break;
default:
cout << "E" << endl;
break;
}
return 0;
}
小练习
- 从键盘上输入年份和月份,输出该月有几天。
判断闰年:
能被4整除但不能被100整除 或者 能被400整除。
#include <iostream>
using namespace std;
int main()
{
/*
从键盘上输入年份和月份,输出该月有几天。
判断闰年:
能被4整除但不能被100整除 或者 能被400整除。
*/
int y = 1996, m = 4;
cin >> y >> m;
if (m == 4 || m == 6 || m == 9 || m == 11)
{
cout << "30天" << endl;
}
else if (m == 2)
{
if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
{
cout << "29天" << endl;
}
else
{
cout << "28天" << endl;
}
}
else
{
cout << "31天" << endl;
}
return 0;
}
想一想还有什么好办法可以实现以上的问题呢顺便留个自己做的小练习,这个答案在下一章公布。
- 根据收入计算应纳税款,要求如下:
月收入小于等于5000元,不纳税。
月收入大于5000元,对于超过5000元的部分纳税5%;
月收入大于10000元,对于超过10000元的部分纳税10%;
月收入大于20000元,对于超过20000元的部分纳税15%;
月收入大于30000元,对于超过30000元的部分纳税20%
结语
小伙伴们,怎么样呢,今天是不是也学到了很多干货呢,加油呀,C++基础就快结束了,而且有了这些基础,小伙伴们可以做一些简单的小程序了呢。
标签:cout,int,代码,C++,运算符,++,从零开始,表达式 From: https://blog.csdn.net/m0_58077690/article/details/139696057