“C++ 编程入门班” 练习三

来自汉语教学技术研究与应用
跳转到导航 跳转到搜索


本课学习目标

  • 完成所有基本程序结构(顺序、分支、循环)语句的学习
    • switch语句
    • 循环结构中break和continue语句的使用
  • 复习巩固各程序结构的语句
    • 进一步熟悉同类结构中不同语句之间的区别(例如switch语句和 if语句、if-else语句的区别,while循环和do-while循环的区别)
    • 结构的嵌套
    • 使用流程图


练习说明

使用最新版本的Chrome 浏览器可以避免把行号一起复制

如果使用其它浏览器,复制后带上了行号,可以按住 Alt 竖选文本,快速删除行号


预习部分

预习说明

自行输入【例3.1】,编辑至运行通过。

switch语句

switch(开关)语句提供了一种比较简洁的方式来处理多分支。

switch语句的语法格式:

switch(表达式)
{
	case 常量: 
		分支1处理语句; 
		break; 
	case 2: 
		分支2处理语句; 
		break;
	case 3: 
		分支3处理语句; 
		break;
	……
		……	
	default:
		其它情况处理语句; 
}

【例3.1】使用switch语句转换数字为星期名称

#include <iostream>
using namespace std;

int main()
{	
	int weekday = 0; 
	cin >> weekday; //接收用户输入	
		
	switch(weekday)
	{
		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;
			break;
		case 7: 
			cout << "星期天" <<endl;
			break;
		default:
			cout << "请输入正确的数字!" <<endl; 
	}		
    
	return 0;
	
}

可以对比【例3.2】、【例3.3】来理解switch的优点。

【例3.2】使用嵌套的if-else语句

#include <iostream>
using namespace std;

int main()
{	
	int weekday = 0; 
	cin >> weekday; //接收用户输入	
	
	if(weekday == 1)
		cout << "星期一" <<endl; 
	else if(weekday == 2)
			cout << "星期二" <<endl; 
		else if(weekday == 3)
				cout << "星期三" <<endl; 
			else if(weekday == 4)
					cout << "星期四" <<endl; 		
				else if(weekday == 5)
						cout << "星期五" <<endl; 
					else if(weekday == 6)
							cout << "星期六" <<endl; 		
						else if(weekday == 7)
								cout << "星期天" <<endl; 		
							else
								cout << "请输入正确的数字!" <<endl;    
			 
	return 0;
	
}
【例3.2】使用多重嵌套的if-else语句,即使层层缩进,也不易阅读,结构过于复杂。

【例3.3】使用无嵌套的if语句

#include <iostream>
using namespace std;

int main()
{	
	int weekday = 0; 
	cin >> weekday; //接收用户输入	
	
	if(weekday == 1)
		cout << "星期一" <<endl; 
	if(weekday == 2)
		cout << "星期二" <<endl; 
	if(weekday == 3)
		cout << "星期三" <<endl; 
	if(weekday == 4)
		cout << "星期四" <<endl; 		
	if(weekday == 5)
		cout << "星期五" <<endl; 
	if(weekday == 6)
		cout << "星期六" <<endl; 		
	if(weekday == 7)
		cout << "星期天" <<endl; 		
	if(weekday < 1 || weekday > 7) // ||表示“或”
		cout << "请输入正确的数字!" <<endl;     
	return 0;
	
}
【例3.3】使用无嵌套的if语句,相比【例3.2】结构简洁,但是每个分支都要执行,增加了程序运行时间。

break、continue语句

【例3.4】质数的判断

#include <iostream>
using namespace std;

int main()
{
	int n =0;
	int count=0;//
	int flag = 1; //1: 是质数  0:不是质数 
	
	cout << "请输入一个大于2的整数:" <<endl;
	cin >> n; 
    for(int i=2;i<n;i++)
	{	
		count++; 
		if(n % i == 0) 
		{ 
			flag = 0;
			break;
		} 
	}    
	cout << "运行了" << count << "次判断" <<endl;
	if(flag == 1)
		cout << n << "是质数" <<endl;
	else
		cout << n << "不是质数" <<endl;
	
	return 0;	
}