四则运算二
设计思想:
定义两个整型的变量a,b;作为进行运算的两个数,在定义一个double类型的e,作为运算结果;参与运算的两个数都有了,接下来就是我们的运算符了,因为要随机生成加减乘除四则运算符,我们不妨在定义一个整型变量c,c是从1到4产生的随机数,然后再用switch语句,选择随机产生的c ,case 1 2 3 4分别对字符型的变量d进行赋值,这个过程产生运算符;整个运算的流程结束了,接下来就是判断运算的了,因为我们要求最后的结果要在100以内,所以,这里要进行一个if语句的判断,如果结果e在100之内,就要输出算式,当然,我们的用户对象是学生,也要考虑结果是不是大于0。 (还有就是对程序的优化了,既然我们的用户对象是二年级的小学生,他们肯定不会计算分数,只能计算整数,在随机产生出发算式的时候,很有可能会产生分数的结果,那么,怎么才能解决这个问题呢?是不是要在进行一次判断?对除法算式进行判断。。。。。这里就卡住了)
//这里需要注释一下,上面写的是 上次的四则运算,这次继续对上次的进行改进。除法确实是有点难,继续上次的思路,怎们判断能不能整除,我们可以反过来思考问题,将除数和被除数都定义为整型的,得到一个结果e,再让e乘以除数,看看能不能得到被除数。这就利用了计算机对整型数据除法的规则,比如73/72会得到1;那么1*72不等于73;我们就继续循环。直到相等我们再跳出循环。下面我放一下验证除法的代码。
package jisuanqi;
// 检验能不能整除
public class test {
public static void main(String[] args) {
int a1;
int b1;
int e1=0;
int f1=0;
do {
a1=(int)(Math.random()*99+1);
b1=(int)(Math.random()*99+1);
String d1=" ";
int c1=(int)(Math.random()*4+1);
switch(c1)
{
case 1:{d1="+";
e1=a1+b1;break;}
case 2:{d1="-";
e1=a1-b1;break;}
case 3:{d1="*";
e1=a1*b1;break;}
case 4:{d1="/";
e1=a1/b1;break;}
}
if(e1<100&&0<e1&&(d1.equals("/"))&&(e1*b1==a1))
//如何判断除法的最后结果是整数类型?
//佩服自己的聪明才智,用最后除法的结果在乘以第二个数,判断是否等于第一个数,这样
//就ok了
{
System.out.println(a1);
System.out.println(a1+d1+b1);
System.out.println(e1);
f1++;
}
else
f1=f1;
}while(f1<1);
}
}
验证截图 :

总结:
上述代码只是验证除法的,f的值,确定了输入几个算式,这个就解决了前一篇随笔四则运算一中的问题。


浙公网安备 33010602011771号