练习~黑马程序员匠心之作-第一阶段C++基础入门-P31~P41-循环结构

黑马程序员匠心之作|C++教程从0到1入门编程

1、while循环语句

语法:while(循环条件){循环语句}

//while循环
	//在屏幕中打印0~9这10个数
	int num = 0;
	while(num < 10)
	{
	    cout << num << endl;
		num++;
	}

2、while案例:猜数字

//while循环案例
	//系统随机生成一个1~100之间的数字,玩家进行猜测。
	//如果猜错,提示玩家数字过大或者过小;
	//如果猜对,恭喜玩家胜利并且退出游戏

	//加随机数种子,利用当前系统时间生成随机数,防止每次随机数都一样
	srand((unsigned int)time(NULL));//开头加#include <ctime> //time系统头文件包含

	//1、系统生成随机数
	int num = rand() % 100 + 1;//生成0+1~99+1之间的随机数。伪随机数每次都是42,加随机数种子解决
	//cout << num << endl;

	//2、玩家进行猜测
	int val = 0;//玩家输入的值
	
	while(1)
	{
		cin >> val;
		//3、判断玩家猜测
		//猜错  提示猜的结果  过大或者过小  重新返回第2步
		if (val > num)
		{
			cout << "你输入的值过大" << endl;
		}
		else if (val < num)
		{
			cout << "你输入的值过小" << endl;
		}
		else
		{
			//猜对  退出游戏
			cout << "恭喜您,猜对了" << endl;
			break;//在循环中,可以利用该关键字退出循环

		}
	}

注意:
1、while的条件用的1,一直循环,用break退出;
2、生成随机数是伪随机数,需要加入随机数种子

//加随机数种子,利用当前系统时间生成随机数,防止每次随机数都一样
	srand((unsigned int)time(NULL));//开头加#include <ctime> //time系统头文件包含
	//1、系统生成随机数
	int num = rand() % 100 + 1;//生成0+1~99+1之间的随机数。

3、用time需要加头文件包含#include< stime>

#include <ctime>

3、do while循环语句

语法:do{循环语句} while(循环条件);

//do while循环语句
	//在屏幕中输出0~9这10个数字
	int num = 0;
	do 
	{ 
		cout << num << endl;
		num ++;
	} 
	while (num < 10);

注意:do while和while区别在于,do while会先执行一次循环语句

4、do while案例:水仙花数

//案例:水仙花数
	//水仙花数是一个3位数,它的每个位上的数字的3次幂之和等于它本身
	//例如:1^3+5^3+3^3=153
	//利用do…while语句,求出所有3位数中的水仙花数

	int ge = 0;
	int shi = 0;
	int bai = 0;
	int num = 100;
	//1、将所有三位数进行输出
	//cout << num << endl;
	do
	{
		//2、在三位数中找到水仙花数
		//获取个位,十位,百位
		bai = num / 100;
		shi = num / 10 % 10;
		ge = num % 10;
		if (num == bai*bai*bai + shi*shi*shi + ge*ge*ge)//是水仙花数打印
		{
			cout << num << endl;
		}
		num++;
	} 
	while (num < 1000);

5、for循环语句

语法:for(起始表达语句;条件表达式;末尾循环体){循环语句}

//for循环语句
	//从数字0打印到数字9
	for (int a = 0 ; a < 10 ; a++)
	{
		cout << a << endl;
	}

6、案例:敲桌子

//案例:敲桌子
	//从1开始到数字100,
	//如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子;
	//其余数字直接打印输出。
	//1、输出1~100
	for (int i = 1;i <= 100;i++)
	{
		//2、从100个数字中找到特殊数字,改为“敲桌子”
		//特殊数字:7的倍数,个位7,十位7
		if(i % 7 == 0 || i % 10 == 7 || i / 10 == 7)
		{
			cout << "敲桌子" << endl;
		}
		else //不是特殊数字,直接打印
		{ 
			cout << i << endl; 
		}	
	}

7、嵌套循环案例:打印星图

//嵌套循环
	//案例:打印10*10的星图
	//外层执行一次,内层执行一周
	//外层循环
	for (int i = 0;i< 10;i++)
	{
	    //内层循环
		for (int j = 0;j < 10;j++)
		{
			cout << "* " ;
		}
		cout << endl;
	}

显示结果:
在这里插入图片描述

8、案例:乘法口诀表

//案例:九九乘法口诀表
	//分析:列数*行数=当前结果
	//列数<=当前行数
	for (int i = 1;i <= 9;i++)//行数
	{
		//cout << i << endl;
		for (int j = 1;j <= i;j++)//列数
		{
			cout << j<<"*"<<i<<"="<< j*i<<" ";
		}
		cout << endl;
	}

注意:千万想好需要打印出来的是什么
显示结果:
在这里插入图片描述

9、跳转语句-break

break使用的时机:
1、出现在swith语句中,终止case并跳出switch;
2、出现在循环语句中,跳出当前循环语句;
3、出现在嵌套循环中,跳出最近的内层循环语句。

//1、出现在swith语句中,终止case并跳出switch;
	cout << "请选择副本难度" << endl;
	cout << "1、普通" << endl;
	cout << "2、中等" << endl;
	cout << "3、困难" << endl;
	int select = 0;//创建选择结果变量
	cin >> select;//等待用户输入
	switch (select)
	{
	case 1:
		cout << "您选择的副本难度为:普通" << endl;
		break;//退出switch语句
	case 2:
		cout << "您选择的副本难度为:中等" << endl;
		break;//退出switch语句
	case 3:
		cout << "您选择的副本难度为:困难" << endl;
		break;//退出switch语句
	default:
		break;
	}
//2、出现在循环语句中,跳出当前循环语句;
	for (int i = 0;i < 10;i++)
	{
		//如果i等于5,退出循环,不再打印
		if (i == 5)
		{
			break;
		}
		cout << i << endl;
	}
//3、出现在嵌套循环中,跳出最近的内层循环语句。
	//10行5列星星
	for (int i = 0;i < 10;i++)
	{
		for (int j = 0;j < 10;j++)
		{
			if (j == 5)
			{
				break;//退出内层循环,10行5列星星
			}
			cout << "* ";
		}
		cout << endl;
	}

10、跳转语句-continue

作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环。

//continue,执行到本行,不再执行后面代码,执行下一次循环
	for (int i = 1;i <= 100;i++)
	{
		//奇数输出,偶数不输出
		if (i % 2 == 0)
		{
			continue; //可以筛选条件,执行到此不再向下,继续下一循环
			//break; //退出循环,输出1
		}
		cout << i << endl;
	}

注意:continue不会使整个循环结束,而break会跳出循环

11、跳转语句-goto

作用:无条件跳转语句(过于强大,不推荐使用)
语法:goto 标记;
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记位置

//goto语句
	cout << 1111 << endl;
	cout << 2222 << endl;
	goto FLAG;
	cout << 3333 << endl;
	cout << 4444 << endl;
FLAG:
	cout << 5555 << endl;
	cout << 6666 << endl;

显示结果:
1111
2222
5555
6666

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值