java中关于IF...ELSE...的逻辑问题(猜数字)

来源:百度知道 编辑:UC知道 时间:2024/05/10 22:44:19
以下是一个猜数字的程序
System.out.println("猜对了!");这句话应该放到while循环的外面.我把它放在里面,就是说不管“猜大了”还是“猜小了”都应该出“猜对了”这句话,可是每次当第一次猜的时候,不管“猜大了”还是“猜小了”都不出“猜对了”,这是WHY?为什么第一次它不出???疑惑?

import javax.swing.JOptionPane;
public class GuestNum{
public static void main(String args[]){
int radnum = (int)(Math.random()*100)+1;
String str = JOptionPane.showInputDialog("输入您的猜测");
int a = Integer.parseInt(str);
while(a!=radnum){
if(a>radnum){
str = JOptionPane.showInputDialog("猜大了");
a= Integer.parseInt(str);

}else if(a<radnum){
str = JOptionPane.showInputDialog("猜小了");
a= Integer.parseInt(str);
}
System.out.println("猜对了!");
}

}
}
改成 else System.out.println("猜对了!"); 之后运行,也不对。。不管什么时候都不出“猜对了”。
这是怎么回事,是if else 的问题吗?

不好意思,刚才看错题了……

程序在str = JOptionPane.showInputDialog("猜大了"); 这里停住了,等待你的输入……要等到你输入后,a= Integer.parseInt(str);转换之后才输出猜对了。。
不然你把猜对了放到while循环的第一句,就会每次都输出猜对了。。。