第7课 选择结构


前言

本课主要介绍如下内容。
(1)选择结构的概念
(2)if-else语句及其应用
(3)switch-case语句及其应用
本课用到的关键字包括if、else、switch、case、break、default

一、选择结构

典型的选择结构

二、if-else语句

1. 基本if-else语句

#include<iostream>

using namespace std;

int main() {
	unsigned int a;
	cin>>a;
	if(a%2 == 0) cout<<"Even";
	else cout<<"Odd";
	return 0;
}

2. 省略else的if语句

3. if-else语句嵌套

分制转换问题。
给定一个百分制成绩s,转为五分制成绩输出。
规则如下:
[90, 100]— A;
[80, 90)— B;
[70, 80)— C;
[60, 70)— D;
[0,60)— E;

#include<iostream>
using namespace std;

int main() {
	float s;
	cin >> s;
	if(s>=90 && s<=100) cout << 'A';
	else if(s>=80 && s<90) cout << 'B';
	else if(s>=70 && s<80) cout << 'C';
	else if(s>=60 && s<70) cout << 'D';
	else if(s>=0 && s<60) cout << 'E';
	return 0;
}

三、switch-case语句

四、课后练习

1. 数位问题

给定一个正整数n,判断其是否是一个三位数,若是,输出YES,否则,输出NO 。
提示
三位正整数的判断条件:

(100<=n) && (n<=999)

2. 整除问题

给定一个正整数n,判断其能否同时被3、5、7整除,若能够,输出YES,否则,输出NO 。
提示
三位正整数的判断条件:

 (n%3==0) && (n%5==0) && (n%7==0)

3. 闰年问题

输入一个年份,判断其是否是闰年。
提示
闰年的科学判定方法是:如果能被4整除且不能被100整除或者能被400整除,则这一年就是闰年。也可以记为“四年一闰,百年不闰,四百年又闰”。
C++描述:

(year%4==0) && (year%100!=0)  || (year%400==0) 

输入一个年份和该年中的一个月份,判断该月份有多少天。

#include<iostream>
using namespace std;

bool isLeap(int year) {
	if((year%4==0) && (year%100!=0) || (year%400==0))
		return true;
	else
		return false;
}

int main() {
	int year, month;
	cout << "Input year month: " << endl;
	cin >> year >> month;
	switch (month) {
	case 2:
		cout << (isLeap(year) ? 29 : 28) << endl;
		break;
	case 4: 
	case 6: 
	case 9: 
	case 11:
		cout << 30 << endl;
		break;
	default:
		cout << 31 << endl;
		break;
	}
	
	return 0;
}

4. 三角形三边问题

三角形的任意两边之和大于第三边。给定3条线段的长度(正整数),判断它们是否能够围城一个三角形。如果能够,则输出YES,否则输出NO。

提示
判断条件: (a+b>c) && (a+c>b) && (b+c>a)为真

bool isTriangle(float edge1, float edge2, float edge3) {
	if(edge1+edge2>edge3 && edge2+edge3>edge1 && edge1+edge3>edge2) {
		return true;
	else
	    return false;
	} 
}

5. 大小写转换问题

给定一个字符ch,如果它是一个大写字母,则把它转为小写字母;如果它是一个小写字母,则把它转为大写字母;其它字符不变。
提示
大写字母判断: (ch>=‘A’) && (ch<=‘Z’) 为真
小写字母判断: (ch>=‘a’) && (ch<=‘z’) 为真
大写字母转小写字母运算:ch += 32;
小写字母转大写字母运算:ch -=32;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值