【Java程序设计】一些数组的简易例题

今天学习的是数组,然后有一些题,不知道是短路了还是怎么了,题目其实并不难,但是也写了好一段时间,记录一下。

题目1

题目

编写一个程序随机产生10个0到50之间的整数并且这些整数不能重复出现。

实现代码

import java.util.Arrays;
import java.util.Random;

public class array_t {
    
    
    public static void main(String[] args) {
    
    
        Random r = new Random();
        int[] arr = new int[10];
        boolean flag = true;
        int i = 0;
        while(i < 10){
    
    
            while(flag) {
    
    
                arr[i] = r.nextInt(50);
                for (int j = i - 1; j >= 0; j--) {
    
    
                    if (arr[i] == arr[j]) {
    
    
                        flag = false;
                    }
                }
                if(flag == false){
    
    //此处的if-else 语句在思路中有解析
                    flag = true;
                    continue;
                }
                else if(flag == true){
    
    
                    flag = false;
                    break;
                }
            }
            flag = true;
            i++;
        }
        System.out.println(Arrays.toString(arr));


    }
}

思路

其实这道题并不是很难,但是我在写循环的时候还是写了很久。上边我的方法是先生成数据,然后把这个数据与之前已经生成的数据进行比较,如果是重复的话,就重新生成。

if(flag == false){
    
    //这里的意思是上边如果出现有数据相等的情况,就置了flag为false
	flag = true;//此处置flag = true是为了继续重新生成随机数的循环
    continue;
}
else if(flag == true){
    
    //这里的意思是并未出现数据相等的情况
    flag = false;//将flag置为false结束循环,其实直接用下边的break也可以,就不需要这条语句了
    break;
}

题目2

题目

二维数组
要求:使用二维数组存储下表的字符串数据。

在这里插入图片描述

实现代码

import java.util.Arrays;

public class array_si {
    
    
    public static void main(String[] args) {
    
    
        String[][] arr = new String[9][];
        for (int i = 0; i < arr.length; i++) {
    
    
            arr[i] = new String[i + 1];
        }
        for (int i = 0; i < arr.length; i++) {
    
    
            for (int j = 0; j < arr[i].length; j++) {
    
    
                String temp = String.format("%d * %d = %d",(j + 1),(i + 1),(j + 1)*(i + 1));
                arr[i][j] = temp;
            }
        }
        for (String[] a:arr) {
    
    
            System.out.println(Arrays.toString(a));
        }
    }
}

思路

这个程序中的二维数组是进行动态创建的,也就是该数组中的定义长度都是不一样的,第一行的一维数组为一个空间,第二行的一位数组为两个空间……以此类推
值得一提的是我没有用过的两个语句

String temp = String.format("%d * %d = %d",(j + 1),(i + 1),(j + 1)*(i + 1));
arr[i][j] = temp;

这里的字符串是格式化创建的,也是创建这个九九乘法表的关键,要不然创建String就会很麻烦。
主要就学习到了这一个String.format的主要作用。

Guess you like

Origin blog.csdn.net/passer__jw767/article/details/111463226