镜花水月(三)

可惜没有如果——条件判断

    
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. 隐式类型转换 (自动完成转换)
    1)算数转换
    2)赋值转换
    3)输出转换
  2. 强制类型转化

隐式类型转换

算数转化
(+,-,*,/,%)
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

高级强制类型转换

  1. static_cast
  2. dynamic_cast
  3. const_cast
  4. reinterpert_cast
    [日后我们有缘再说]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值