栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java数组练习题:随机生成num大小的数组,数组内值大小范围为(min,max),组内值各不相同

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java数组练习题:随机生成num大小的数组,数组内值大小范围为(min,max),组内值各不相同

思路:          1.定义数组           

                     2.给数组赋值   (难点)

                     3.输出数组

package com.day_07.exer;
import java.util.Random;
import java.util.Scanner;
			//random_[i] = rand.nextInt(max - min + 1) + min;
 class Random_{
	 
	 public static void main(String[] args) {
		
		 Random rand = new Random();
		 Scanner scan = new Scanner(System.in);
		 
		 System.out.print("请输入随机数组的大小:");
		 int num = scan.nextInt();
		 System.out.println("");
		 System.out.println("请输入数组中数值的范围:");
		 System.out.print("最大值:");
		 int max = scan.nextInt();
		 System.out.println("");
		 System.out.println("最小值:");
		 int min = scan.nextInt();
		 System.out.println("");
		 
		 int[] Random_num = new int[num];//定义数组
		 
		 
		 boolean isFlag = true;
		 
		 Random_num[0] =  rand.nextInt(max - min + 1) + min;
		 
		 for(int i = 1;i < Random_num.length;i++) {//遍历数组
			 
			 isFlag = true;
			 
	table: while(isFlag) {
				 
		         
			     Random_num[i] = rand.nextInt(max - min + 1) + min;//给Random[i]随机赋值
				 for(int j = 0;j < i;j++) {     //判断Random[i]是否满足不与其前任一元素相同

					 if(Random_num[i] == Random_num[j]){
						 continue table;        //如出现相同,返回赋值语句
					 }
					 if(j == i - 1) {           //判断是否对比完全
						 isFlag = false;        //对比完全,跳出循环
					
					 }
				 }
				 
				
				
			 }
			 
		 }
		 
		 
		 for(int i = 0;i < Random_num.length;i++) {//输出随机数组
			 System.out.println(Random_num[i]+"t");
		 }
		 
		 
	}
	 
 }

主要难点在如何赋值 

这里我赋值的方法是:

①:数组第一个先赋一个随机值

②:从下标为1开始遍历数组,对于每个遍历到的值Random_[i],用一个无限循环while(isFlag){}找出满足Random_[i]不与

for(int j = 0;j < i;j++) {
					 //if(temp == Random_num[j])
					 if(Random_num[i] == Random_num[j]){
						 continue table;
					 }
					 if(j == i - 1) {
						 isFlag = false;
						 //Random_num[i] = temp;
					 }
				 }

这个遍历到 Random_[i]前任何一个Random[j]不同,如果有相同的,利用lable:while 与 continue

返回到给Random_[i]随机赋值的那个语句(即重新开始一次while循环)。

遍历完全,利用isFlag跳出while循环

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/274083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号