可惜没有如果——条件判断
if 语句的三种形态
//第一种形态
#include <iostream>
using namespace std;
int main(void) {
int salary;
cout << "你月薪多少?";
cin >> salary;
if (salary < 20000) {
cout << "你是一个好人, 我还不想谈恋爱." << endl;
}
system("pause");
return 0;
}
//第二种形态
#include <iostream>
using namespace std;
int main(void) {
int salary;
cout << "你月薪多少?" << endl;
cin >> salary;
if (salary < 20000) {
cout << "你是一个好人, 我还不想谈恋爱." << endl;
} else {
cout << "我没有什么要求, 只要你对我好就行." << endl;
}
system("pause");
return 0;
}
//第三种形态
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
int main(void) {
int salary;
string houseRet; //是否有房
string carRet; //是否有车
cout << "你的月薪是多少?" << endl;
cin >> salary;
cout << "你有房吗?" << endl;
cin >> houseRet;
cout << "你有车吗?" << endl;
cin >> carRet;
if (salary < 20000) {
cout << "你是一个好人, 我现在还不想谈恋爱." << endl;
} else if (houseRet == "有") {
cout << "我其实没有什么要求,只要你对我好." << endl;
} else if (carRet == "有") {
cout << "还不错哦, 以后再联系." << endl;
} else {
cout << "有缘再见." << endl;
}
system("pause");
return 0;
}
if 语句的嵌套
#include <iostream>
#include <windows.h>
using namespace std;
int main(void) {
int x, y, z;
cout << "请输入 3 个整数: " << endl;
cin >> x >> y >> z;
if (x > y) {
if (x > z) {
cout << "最大值是: " << x << endl;
} else {
cout << "最大值是: " << z << endl;
}
} else {
if (y > z) {
cout << "最大值是: " << y << endl;
} else {
cout << "最大值是: " << z << endl;
}
}
system("pause");
return 0;
}
switch 语句
#include <iostream>
#include <windows.h>
using namespace std;
int main(void) {
int num; cout << "请输入一个数字: ";
cin >> num;
switch (num) {
case 1:
cout << "星期一:包子" << endl;
break;
case 2:
cout << "星期二:馒头" << endl;
break;
case 3:
cout << "星期三:稀饭" << endl;
break;
case 4:
cout << "星期四:白菜" << endl;
break;
case 5:
cout << "星期五:土豆" << endl;
break;
case 6:
cout << "星期六:番茄" << endl;
case 7:
cout << "周末:休息" << endl;
break;
default:
cout << "请输入 1-7" << endl;
break; //有些人会省略这一句
}
system("pause");
return 0;
}
switch 和 if 的选择
switch: 用于 int/char/long/long long 类型的变量,和多个特定常量的判断处理。
(float 和 double 类型不可以)
if : 适用于各种逻辑判断
数据类型之间的转换
为什么需要“类型转换”?
参与运算的两个操作数的数据类型,必须相同!
类型转换的类别:
- 隐式类型转换 (自动完成转换)
1)算数转换
2)赋值转换
3)输出转换 - 强制类型转化
隐式类型转换
算数转化
(+,-,*,/,%)
char , int, long, long long, float, double
15 + 3.14 => 15.0 + 3.14
赋值转换
#include <stdio.h>
int main(void) {
int x;
// 计算结果 31.4 转换为 int 类型,
//因为赋值符号的左边变量的类型是 int 类型
x = 3.14 * 10.0;
cout << x << endl; //结果为 31
return 0;
}
输出转换(C 语言)
#include <stdio.h>
int main(void) {
printf("%c\n", 255+50); //305 -> 49 ('1');
printf("%d\n", 255+50); //305
return 0;
}
int 类型数据, 按照%f 格式输出时,将得到错误的输出
float(或 double) 类型数据,按照%d 格式输出时,将得到错误的输出
强制类型转化
简单强制类型转换
(char/int/long/数据类型)
int x = 257 + 100;
cout << "x=" << x << endl; //357
//(char)强转成char类型,一个字节八位,
//现在257的二进制为100000001超出八位,计算机会抹掉高位成了 -> 00000001
//也就是十进制 1 ,那么成了 1 + 100
x = (char)257 + 100;
cout << "x=" << x << endl; //101
高级强制类型转换
- static_cast
- dynamic_cast
- const_cast
- reinterpert_cast
[日后我们有缘再说]