{C++程序设计初步(3)}菜大学生C++学习笔记6

第3章 C++程序设计初步(3)


6 选择结构和if语句
1 最简单的if语句(成绩判定1,两个数按从小到大输出)如果条件成立要执行多条怎么办??(成绩判定1,复合语句)常规的if语句(两个分支)(成绩判定2)在if与else之间可以写多条吗?多个分支怎么办(成绩判定3)
在这里插入图片描述
2 三角形的面积(先判断能否组成)
在这里插入图片描述
3 if语句的嵌套(先分两大情况,每一情况中再细分)
例如:学生选课。
男生:篮球,足球
女生:瑜珈,太极,健美操
#include
using namespace std;
int main()
{
// 学生选课。
//男生:篮球,足球
// 女生:瑜珈,太极,健美操

int gender;
int subject;
cout<<"请输入你的性别:1 男  2  女:"<<endl;
cin>>gender;
if(gender==1) 
{
	cout<<"请输入你的选课 1 篮球 2 足球:";
	cin>>subject;
	if(subject==1) 
	{
		cout<<"打篮球的男生最帅了!!"<<endl;
	}
	else
	{
		cout<<"足球是世界上球迷最多的运动!!"<<endl;
	}
}
else if(gender==2)
{
	cout<<"请输入你的选课 1 瑜珈,2 太极,3 健美操:";
	cin>>subject;
	if(subject==1)
	{
		cout<<"练习瑜珈,调整身心!!"<<endl;
	}
	else if(subject==2)
	{
		cout<<"练习太极,打败色狼!!"<<endl;
	}
	else if(subject==3)
	{
		cout<<"学习健美操,练出好身材!!"<<endl;
	}
	else
	{
		cout<<"学校还没有那么多课程啊!!"<<endl;
	}
}
else
{
	cout<<"你输入的性别好奇怪啊!!"<<endl;
}
system("pause");
return 0;

}

例如:周末安排(朋友来:火锅?电影? 不来:学习?运动?在宿舍当猪)
4 else离不了if,if能离开else,注意配对关系。与前面距离最近并且没有配对的if配对。
5 条件运算符和条件表达式(唯一的三目运算)
?: 参与运算的有三个值,
表达式1?表达式2:表达式3
先计算表达式1的值
如果值为非0 则表达式2为整个表达式的结果
如果值为0 则表达式3为整个表达式的结果
#include
using namespace std;
int main()
{
int a,b,max;
cin>>a>>b;
max=a>=b?a:b;
/*
if(a>=b)
max=a;
else
max=b;
*/
cout<<max<<endl;
return 0;
}

6 多分支选择结构与switch。(判断与多个值中哪个相等,成绩判定4)
#include
using namespace std;
int main()
{
cout << " 爱情心理测试 " << endl;
cout << “如果你的5个手指头都破了,只能包一个,请问你要包哪一个?”<< endl;
cout << “请选择:1 大拇指, 2 食指, 3 中指, 4 无名指, 5 小指”<< endl;

int choose = 0;
cin >> choose;
    
//利用if语句进行判断
if (choose == 1) 
{
	cout << "你选择的是大拇指!\n";
	cout << "你是幸运神,有人会爱你一生一世!\n";
}
else if (choose == 2) 
{
    cout << "你选择的是食指!\n";
    cout << "你是痴情种,会用一生去爱一个人!\n";
}
else if (choose == 3) 
{
    cout << "你选择的是中指!\n";
    cout << "你是花心大萝卜,一生会爱上很多人!\n";
}
else if (choose == 4) 
{
   	cout << "你选择的是无名指!\n";
    cout << "你是自恋狂,不爱别人爱自己!\n";
}
else if (choose == 5) 
{
   	cout << "你选择的是小指!\n";
    cout << "你是万人迷,会有很多人爱上你!\n";
}
else 
{
    cout << "输入错误!难道你有" << choose << "个手指头!\n";
}
getchar();getchar(); 

}

Switch语句的功能,根据switch后()中的值与{}中case后面的值比较是否相等。与哪个相等则执行相应 的语句。Case后面的值不允许重复。只能是常量(整型 字符)
如果与所有的值都不相等,如果有Default,则执行Default后面的语句。
与case后面的常量比较相等后,执行相应的语句直到遇到break
ALT+F8调整选中部分代码格式({}单独占一行)
#include
using namespace std;
int main()
{
cout << " 爱情心理测试 " << endl;
cout << “如果你的5个手指头都破了,只能包一个,请问你要包哪一个?”<< endl;
cout << “请选择:1 大拇指, 2 食指, 3 中指, 4 无名指, 5 小指”<< endl;

int choose = 0;
cin >> choose;

switch(choose)
{
	case 1:
		cout << "你选择的是大拇指!\n";
		cout << "你是幸运神,有人会爱你一生一世!\n";
		break;
	case 2:
		cout << "你选择的是食指!\n";
		cout << "你是痴情种,会用一生去爱一个人!\n";
		break;
	case 3:
		cout << "你选择的是中指!\n";
		cout << "你是花心大萝卜,一生会爱上很多人!\n";
		break;
	case 4:
		cout << "你选择的是无名指!\n";
		cout << "你是自恋狂,不爱别人爱自己!\n";
		break;
	case 5:
		cout << "你选择的是小指!\n";
		cout << "你是万人迷,会有很多人爱上你!\n";
		break;
	default :
		cout << "输入错误!难道你有" << choose << "个手指头!\n";
		break;
}

}

#include
using namespace std;
int main()
{
char grade;
cout<<“请输入成绩等级:(ABCDE)”;
cin>>grade;
switch(grade)
{
case ‘a’:
case ‘A’:
cout<<“very Good!!!”<<endl;
cout<<“very Good!!!”<<endl;
break;
case ‘B’:
case ‘b’:
cout<<“Good!!!”<<endl;
break;
case ‘C’:
case ‘c’:
cout<<“OKOK!!!”<<endl;
break;
case ‘D’:
case ‘d’:
cout<<“pass!!!”<<endl;
break;
case ‘E’:
case ‘e’:
cout<<“fail!!!”<<endl;
break;
default:
cout<<“输入错误!!”<<endl;
}
}

#include
using namespace std;
int main()
{
int grade;
cout<<“请输入成绩等级(0-100):”;
cin>>grade;
switch(grade/10)
{
case 10:
case 9:
cout<<“very Good!!!”<<endl;
cout<<“very Good!!!”<<endl;
break;
case 8:
cout<<“Good!!!”<<endl;
break;
case 7:
cout<<“OKOK!!!”<<endl;
break;
case 6:
cout<<“pass!!!”<<endl;
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
cout<<“fail!!!”<<endl;
break;
default:
cout<<“输入错误!!”<<endl;
}
}

进阶问题:switch嵌套
int a,b,c=0;
a=1;b=1;
//a=1;b=2;
//a=2;b=1;
//a=2;b=2;
switch(a)
{
case 1:
switch (b)
{
case 1:
c++;
case 2:
c=c*5;
break;
}
case 2:
switch(b)
{
case 1:
c=c+5;
break;
case 2:
c=c+7;
}
}
cout<<c<<endl;

7 判断闰年
#include
using namespace std;
int main()
{
int year;
cin>>year;
if((year%400==0)||(year%4= =0&&year%100!=0))
{
cout<<year<<“年是闰年!”<<endl;
}
else
{
cout<<year<<“年不是闰年!”<<endl;
}
}

#include
using namespace std;
int main()
{
int year;
cin>>year;
if(year%4= =0)
{
if(year%100= =0)
{
if(year%400= =0)
{
cout<<year<<“年是闰年!”<<endl;
}
else
{
cout<<year<<“年不是闰年!”<<endl;
}
}
else
{
cout<<year<<“年是闰年!”<<endl;
}
}
else
{
cout<<year<<“年不是闰年!”<<endl;
}
}
作业:输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C0ntr01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值