请用一个实际案例解读如何使用循环语句?
请用一个实际案例解读如何使用循环语句?
昨天看了循环语句的语法讲解,受益匪浅。但还是希望能提供一个实际的应用案例,来解读一下循环语句的具体实现方法。可以吗?
当然可以。下面我们就来列举和解读一个循环语句的实际应用案例。
设计需求:
请找到这样一个正整数数列,它的长度是100,最大值不超过1000,每个整数虽然随机出现,但是每两个相邻的整数都不相等。
需求分析:
(1)目标对象是一个整数数列。
(2)每个数字随机出现。
(3)最大值不超过1000。
(4)每两个相邻的整数都不相等。
(5)数列长度100。
实现方法:
第一步:创建一个int类型的列表实例,用于存放该数列
List<int> myList = new List<int>();
第二步:了解如何创建一个随机整数。
//创建一个生成随机数类型的实例,调用Random类的Next方法
Random ran = new Random()
//创建一个1-1000之间的随机整数
int x = ran.Next(1,1000);
第三步:定义一个循环语句,用于反复产生随机的整数,并把它存储到myList列表。循环语句的终止条件是myList的长度等于100。
因为,无法确定循环的次数,也不是读取一个已有的序列,所以,不方便使用for循环和foreach循环。剩下的还有do循环和do...while循环。它们之间也是有差异的,我们这里选择使用while循环,请同学们思考一下,为什么不选择do...while循环。
//创建一个生成随机数类型的实例
Random ran = new Random()
//循环语句
while(myList.Count<100)
{
//创建一个1-1000之间的随机整数
int x = ran.Next(1,1000);
//将获得的x添加到列表
myList.Add(x);
}
上面的代码,会产生100个随机整数的列表,但这个没有排除相邻相等的问题。
第四步:需要增加一个判断,因为添加到myList列表的随机数,不能与上一个数字相等,以确保每两个相邻的数字不相等。
方法是:定义一个变量,用于存储每次循环产生的随机数,如果新一轮循环产生的随机数与它不相等,那么,就允许添加到myList列表,否则,直接跳到下一轮循环。
于是,我们得到最终的代码是:
第五步:整理完整代码
//创建一个存储目标数列的列表类型的实例
List<int> myList = new List<int>();
//定义一个变量,用于临时存放循环产生的符合规则的随机整数
int y = 0;
//创建一个生成随机数类型的实例
Random ran = new Random()
//循环开始
while(myList.Count<100)
{
//创建一个1-1000之间的随机整数
int x = ran.Next(1,1000);
//判断刚刚得到的随机整数是否与上一轮获得的有效整数相同
if(x!=y){
//将获得的x添加到列表
myList.Add(x);
//将符合规则的新的随机整数存储到y变量
y=x;
}else{
continue;
}
}
// 下面是打印输出找到的数列,我们也用一个循环语句读取它的所有值
// 这个肯定就是使用foreach循环了
foreach(int item in myList){
Console.WriteLine(item );
}
最后再一次核对需求分析:
(1)目标对象是一个整数数列。
(2)每个数字随机出现。
(3)最大值不超过1000。
(4)每两个相邻的整数都不相等。
(5)数列长度100。
- 极简区块链手册:什么是区块链?什么是比特币?
- Nginx+keepalived实现高可用
- 来一波Linux中查看cpu、磁盘、内存、网络的命令
- PXE+kickstart网络安装CentOS7.4系统及过程中各种报错
- [MSDN]通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行
- Flask-配置与调试
- PXE+kickstart网络安装CentOS7.4系统及过程中各种报错
- MSDN官方的ASP.Net异步页面的经典示例代码
- Nginx反向代理、负载均衡功能
- 2018即将面临的12个云安全风险
- Flask快速入门,知识整理
- python的reduce()函数
- 企业级memcached缓存数据库结合php使用与web管理memcached
- python中星号的意义(**字典,*列表或元组)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Spring在代码中获取bean的几种方式
- Spring 一个接口多个实现类怎么注入
- ASP.NET MVC Controller的激活
- js 逗号表达式
- spring动态调用方法
- Spring AOP动态代理原理与实现方式
- 基于注解多数据源解决方案
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
- 你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?
- java阻塞队列得实现
- 谈谈如何利用 valgrind 排查内存错误
- 用java写一个死锁
- Runnable和Thread比较
- 使用@ConditionalOnProperty注解
- Java注解Annotation与自定义注解详解