1、变量初始化
含义:在变量定义的时候,给变量赋值
int a = 1;//初始化
int b;
b = 2;//不是初始化,仅仅是给变量赋值
全局变量(函数外定义的变量为全局变量)如果不初始化内容为0
局部变量(在{ }复合语句中定义的变量一般为普通局部变量)如果不初始化,程序会报错
#include <iostream>
using namespace std;
// 全局变量定义
int a;
int main(int argc, char argv[])
{
// 局部变量定义
int b;
cout << "a =" << a << endl; // 输出全局变量a的值:0
cout << "b =" << b << endl; // 会报错
system("pause")
return 0;
}
分两次运行上述程序:
a =0
请按任意键继续. . .
错误 C4700 使用了未初始化的局部变量“b”
所以:变量值不确定时一般将其初始化为0,养成好习惯
2、运算符
含义:用于执行代码的运算
2.1 算术运算符
含义:用于处理四则运算
注意:
1、2个整数(int型)相除,结果依然是整数,将小数部分去除
2、2个小数之间是不能进行取模运算的
3、前置后置的递增递减无非就是是否先进行加一或减一,然后再计算表达式。针对上表解释一下:前置就是先运算a(进行加一或减一操作),再给b赋值;后置就是先给b赋值,a再进行加一或减一的操作;
注:这部分比较简单,不贴代码了,可以自己尝试一下
2.2 赋值运算符
含义:将表达式的值赋给变量
代码解释上述示例:
//加等于
int a = 0;
a = a + 2;
cout << "a =" << a <<endl;
//减等于
int a = 5;
a = a - 3;
cout << "a =" << a <<endl;
//乘等于
int a = 2;
a = a * 2;
cout << "a =" << a <<endl;
//除等于
int a = 4;
a = a / 2;
cout << "a =" << a <<endl;
//模等于
int a = 3;
a = a % 2;
cout << "a =" << a <<endl;
2.3 比较运算符
含义:用于表达式的比较,并返回一个真值或假值
2.4 逻辑运算符
含义:根据表达式的值返回真值或假值
注:C++中只要不是0,都为真
3、程序流程结构
C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
顺序结构:程序按顺序执行,不发生跳转
选择结构:依据条件是否满足,有选择的执行相应功能
循环结构:依据条件是否满足,循环多次执行某段代码
3.1 选择结构
3.1.1 if语句
if语句的三种形式:
1、单行格式if语句
语法:if(条件)
{
语句
}
2、多行格式if语句
语法:if(条件)
{
条件满足执行的语句
}
else
{
条件不满足执行的语句
}
#include <iostream>
using namespace std;
int main(int argc, char argv[])
{
int score = 0;
cout << "请输入您的分数:" << endl;
//读取键盘输入
cin >> score;
cout << "您的分数为:" << score << endl;
if (score > 650)
{
cout << "您考上了一本" << endl;
}
else
{
cout << "您未考上一本" << endl;
}
system("pause");
return 0;
}
3、多条件的if语句
语句:
if(条件1)
{条件1满足执行的语句}
else if(条件2)
{条件2满足执行的语句}
......
else
{都不满足执行的语句}
代码略,很简单
4、嵌套if语句
本质:在某个if或者else if语句中,又有了新的多条件if语句
练习案例:三只小猪称体重
有三只小猪ABC,请分别输入三至小猪的体重,并且判断哪只小猪最重?
#include <iostream>
using namespace std;
int main(int argc, char argv[])
{
int A = 0;
int B = 0;
int C = 0;
int D = 0;//引入一个中间量进行比较,当然也可以不引入,只要你理得清楚就可以
cout << "请输入小猪A的体重:" << endl;
cin >> A;
cout << "请输入小猪B的体重:" << endl;
cin >> B;
cout << "请输入小猪C的体重:" << endl;
cin >> C;
if (A>= B)
{
D = A;
if (D >=C)
{
cout << "最重的小猪为A" << endl;
}
else if (D <= C)
{
cout << "最重的小猪为C" << endl;
}
}
else if(A<=B)
{
D = B;
if (D >= C)
{
cout << "最重的小猪为B" << endl;
}
else if (D <= C)
{
cout << "最重的小猪为C" << endl;
}
}
system("pause");
return 0;
}
3.1.2 三目运算符
含义:通过三目运算符实现简单的判断
语法:表达式1 ? 表达式2 : 表达式3
解释:
如果表达式1的值为真,执行表达式2,并返回表达式2的结果
如果表达式1的值为假,执行表达式3,并返回表达式3的结果
注:在C++中三目运算符返回的是变量,可以继续赋值
例子:将a b较大的数赋值给c
#include <iostream>
using namespace std;
int main()
{
int a = 20;
int b = 30;
int c = 0;
c = a > b ? a : b;//三目运算符
cout << "c = " << c<< endl;
(a > b ? a : b) = 100;//直接给返回的变量赋值
cout << "a =" << a << endl;
cout << "b =" << b << endl;
system("pause");
return 0;
}
c = 30
a =20
b =100
请按任意键继续. . .
3.1.3 switch语句
含义:执行多条件分支语句
语法:
switch(表达式)
{
case 结果1:执行语句;break;
case 结果1:执行语句;break;
......
default:执行语句;break;
}
注:case里如果没有break,那么程序会一直向下执行。
案例:给电影打分
#include <iostream>
using namespace std;
int main()
{
cout << "请给电影打分:" << endl;
int score = 0;
cin >> score;
cout << "您打的分数为:" << score << endl;
switch (score)
{
case 10:
cout << "您认为是经典电影!" << endl;
break;/*退出当前分支,如果注释此句话,当分数为10时,
不会终止当前分支,反而进入下一分支*/
case 9:
cout << "您认为是好电影!" << endl;
break;
case 8:
cout << "您认为是一般电影!" << endl;
break;
case 7:
cout << "您认为是观感差的电影!" << endl;
break;
default:
cout << "烂片" << endl;
break;
}
system("pause");
return 0;
}
错误输出(按我的注释说明的错误运行)如下,仅供参考:
请给电影打分:
10
您打的分数为:10
您认为是经典电影!
您认为是好电影!
请按任意键继续. . .
这个评分程序有缺陷,打分不能是小数,所以不好,不如改用if语句来写。
switch的缺点:判断的时候只能是整型或者字符型,不可以是一个区间
switch的优点:结构清晰,执行效率高