2020.9.30收获
四则运算
(3)可定制数量,输入大的数量值,测试系统是否崩溃。
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)]);

浙公网安备 33010602011771号