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循环

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值