3个月熟悉c++基础知识第四天:选择结构(switch语句)、循环结构

一、switch语句

1、作用:执行多条件分支

2、语法:

switch(表达式)
{
    case 结果1:执行语句;break;
    case 结果2:执行语句;break;
    ...
    default:执行语句;break;//所有分支都不满足,执行该分支
}

3、案例:给电影打分。10-9 经典,8-7非常好,6-5一般,5以下烂片

#include<iostream>
using namespace std;
int main()
{   
	//1提示用户给电影打分
	//2用户开始进行打分
	//3根据用户输入的分数提示用户最后的结果
	int a = 0;
	cout << "请给《星际穿越》评分:" << endl;
	cin >> a;
	switch(a)
	{
	case 10 :
		cout << "您认为是经典电影" << endl; break;//退出当前分支,不执行下面分支,跳出选择结构
	case 9:
		cout << "您认为是经典电影" << endl; break;
	case 8:
		cout << "您认为电影很好" << endl; break;
	case 7:
		cout << "您认为电影很好" << endl; break;
	case 6:
		cout << "您认为电影一般" << endl; break;
	case 5:
		cout << "您认为电影一般" << endl; break;
	default:
		cout << "这是一部烂片" << endl; break;
	}
	system("pause");
	return 0;
}

注意:在每个分支后要加break;,不然当执行一个分支后会继续执行下一个分支。

4、总结

1)、if语句与switch的区别:switch的缺点是判断时只能是整型或者字符型,不可以是一个区间。

switch的优点结构清晰,执行效率高。(因为某些判断条件在嵌套if语句中需要挨个在每个if中执行和判断最后才能得到结果,而switch确定好了条件,目的明确,就只执行一次执行语句)

二、循环结构

1、while语句

1)、满足循环条件,执行循环语句

2)、语法:while(循环条件){循环语句}(只有循环条件结果为真,就执行循环语句)

3)、案例:在屏幕中打印0~9这10个数字

#include<iostream>
using namespace std;
int main()
{   
	int num = 0;
	while (num < 10)
	{
		cout << num << endl;
		num += 1;
	}
	system("pause");
	return 0;
}

注意:一定要有一个退出程序的窗口,否则会陷入死循环。

2、练习:系统随机生成1-100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或者过小,如果猜对恭喜玩家胜利,并且退出游戏

#include<iostream>
using namespace std;
#include <ctime>
int main()
{   
	int num,num_guess=0,i=0;
	/*
	之前只用rand() % 100 + 1赋值给num, 好像不管执行几次程序它的数值都没有变,因为它是一个伪随机数。
	所以我们需要添加随机数种子,利用当前系统时间生成随机数,防止每次随机数都一样。
	注意这种用法一定要添加头文件#include <ctime>
	*/
	srand((unsigned int)time(NULL));
	num = rand() % 100 + 1;//rand()%n表示长度为n-1的0--n-1的数,若长度不变起始数字变了就在n后面加相应的m变换区间即可
	while (1)//循环条件一直为真,那么什么时候需要跳出循环体时,加入break;即可
	{
		cout << "输入您猜测的数字:" << endl;
		cin >> num_guess;
		i++;
		if (i > 5)
		{
			cout << "玩家输了" << endl;
			break;
		}
		if (num_guess > num)
		{
			cout << "您输入的数字过大,请重新输入" << endl;
		}
		else if(num_guess < num)
		{
			cout << "您输入的数字过过小,请重新输入" << endl;
		}
		else
		{
			cout << "玩家胜利,退出游戏" << endl;
			break;
		}
	}
	

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值