2020年9月29日Java学习日记

四则运算

(3)可定制数量,输入大的数量值,测试系统是否崩溃。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package day02;
 
import java.util.Random;
import java.util.Scanner;
 
public class Test {
    public static void main(String args[]) {
 
         
        Random rand = new Random();
        boolean[] bool = new boolean[101];
        String[] fuhao = new String[] { "+""-""*""/" };
 
        // variable initialization
        int first = 0;
        int second = 0;
        String fh = " ";
 
        int length = 0;
        Scanner scan = new Scanner(System.in);
        System.out.print("您想练习题目的个数为:");
        length=scan.nextInt();
         
        for (int i = 0; i <length ; i++) {
            do {
                first = rand.nextInt(101);
                second = rand.nextInt(101);
                fh = fuhao[rand.nextInt(4)];
            while (bool[first] && bool[second]);
            bool[first] = true;
            bool[second] = true;
            System.out.println(i+1+"、"+first + fh + second + "=");
        }
 
    }
}

 

当输入100000后,系统崩溃。

(4)定制操作数的个数

 

package day02;
 
import java.util.Random;
import java.util.Scanner;
 
public class Test {
 
    public static void main(String args[]) {
 
        Random rand = new Random();
        boolean[] bool = new boolean[101];
        String[] fuhao = new String[] { "+", "-", "*", "/" };
 
        int n = 0;
        int length = 0;
        @SuppressWarnings("resource")
        Scanner scan = new Scanner(System.in);
        System.out.print("您想练习题目的个数为:");
        length = scan.nextInt();
        System.out.print("操作数的个数为:");
        n = scan.nextInt();
 
        int[] Number = new int[n];
        String[] Fh = new String[n];
 
        for (int i = 0; i < length; i++) {
 
            for (int j = 0; j < n; j++) {
 
                do {
                    Number[j] = rand.nextInt(101);
                    Fh[j] = String.valueOf(fuhao[rand.nextInt(4)]);
 
                } while (bool[Number[j]]);
 
                bool[Number[j]] = true;
 
                if (j != n - 1) {
                    System.out.print(Number[j] + Fh[j]);
                } else {
                    System.out.print(Number[j]);
                }
            }
            System.out.println();
 
        }
 
    }
}

 

最初我将数组 Fh 定义为:String[] Fh = new String[n-1]; 结果出现了溢出现象 

 

 

经过修改,改成了  String[] Fh = new String[n]; 运行成功

其中,由于我并没有考虑最后一组数字与符号的问题,导致在随机生成的计算题后面出现符号。经过修改,加了一个判断语句,判断它是否为最后一组,得以正确输出。

 

还有一个很大的收获是:我学习了如何给字符串数组中的元素赋值

Fh[j] = String.valueOf(fuhao[rand.nextInt(4)]);
posted @ 2020-09-29 01:14  Zwyooo  阅读(52)  评论(0编辑  收藏  举报