根据程序的功能以及大佬的指教,修改了部分代码,上博中的问题已经成功解决。
修改点:
1.将从键盘获取标识符flag改为利用随机数机制随机产生,随机产生的标识符flag大于等于0,小于4。
2.将产生随机标识符放在循环内部。上次的标识符放在循环之外,这是上次设计的缺陷,导致了一次运行只能产生一种类型的运算题。
import java.util.*;
public class A {
public static void main(String[] args) {
int sum=0;
int sub=0;
int mult=0;
float div=0;
for(int j=0;j<300;j++){
Random ran=new Random();
//产生随机的标识符flag(标识符flag大于等于0,小于4)
int flag = ran.nextInt(4);
//生成两个随机数
int a=ran.nextInt(100);
int b=ran.nextInt(100);
System.out.println("产生两个随机整数:"+a+","+b);
//根据标识符确定执行何种运算
switch(flag){
case 0:{ sum=a+b;
System.out.println("sum="+sum);
break;}
case 1:{ if(a>b) sub=a-b; //运算结果不能为负
else sub=b-a;
System.out.println("sub="+sub);
break;}
case 2:{ mult=a*b;
System.out.println("mult="+mult);
break;}
case 3:{ if(b!=0) div=(float)a/(float)b; //两个数都为整数,结果也会为整数,除不进的全部为0,需要强制转换为float型
else System.out.println("除数为零,无法进行除法运算!");
System.out.println("div="+div);
break;}
}
}
}
}
功能是实现了,如果有更好的设计方法可以使代码变得更简洁,还是请多多指教。