我是java的新手,我正在编写这个简短的程序,您可以在其中猜测1到10之间的数字。正确的数字存储为整数。如果你猜一个较低的数字,它应该说“正确的数字更高”,如果你猜的更高,它应该说“正确的数字更低”。这就是我所拥有的:
import javax.swing.*;
public class Oppg3 {
public static void main(String[] args) {
int number = 7;
int guessed = Integer.parseInt(JOptionPane.showInputDialog("Guess a number between 1 and 10"));
while(guessed>number) guessed = Integer.parseInt(JOptionPane.showInputDialog(guessed + " is wrong. Try a lower number."));
while(guessed<number) guessed = Integer.parseInt(JOptionPane.showInputDialog(guessed + " is wrong. Try a higher number."));
JOptionPane.showMessageDialog(null, guessed + " is correct!");
}
}
很明显,这不会起作用,因为如果你输入一个较低的数字,它会跳到下一个,即使它更高,这也会正确。那么我该如何解决这个问题呢?它会检查两个语句?对不起,解释不好。谢谢。
答案 0 :(得分:3)
最简单的解决方案是用if
替换当前的时间段,并将它们包含在
while(guessed!=number)
{
if(guessed>number) //stuff
if(guessd<number) //otherstuff
}
答案 1 :(得分:2)
如果我在哪里,我会做以下事情:
do while
循环。按原样,如果您的用户在第二个循环中给出一个更大的数字,它应告诉用户该数字是正确的,无论该值是多少,这都不是理想的行为。
答案 2 :(得分:1)
而不是两个while
循环,只要猜到的数字不等于正确答案,就创建一个循环。在循环内部,创建if
语句以检查猜测的数字是否高于或低于正确答案,并执行相应的操作。
答案 3 :(得分:0)
尝试在两个语句中使用一个while
循环,并为它们单独使用if
子句。
答案 4 :(得分:0)
试试这个:
While (ReadNumber != guessed)
{
//if Higher then ...show appropriate message
//if lower then ...show appropriate message
//ReadNumber = read Input again
}
答案 5 :(得分:0)
用此替换你的最后一行。
if(guessed == number){
JOptionPane.showMessageDialog(null, guessed + " is correct!");
}
或改变一切,
bool correct = false;
while(correct == false)
{
if(guessed == number)
{
enter code here
correct = true;
}
else if(guessed > number)
{
enter code here
}
//check for guessed < number
}
答案 6 :(得分:0)
当用户不猜错正确的数字时,您必须使用而循环。在循环内部,你必须检查如果数字更高或更低。
所以程序看起来像这样:
while (the user don't guess the number){
//
if (the guessed number is higher){...}
if (the guessed number is lower){...}
//
}
答案 7 :(得分:0)
逻辑错误。您希望用户每次出错时都重新输入一个数字。这就是你的循环看起来像while(guessed != number) { ... }
的原因。在内部,您需要接受输入,验证并提供输出。
我不会在这里放置正确的代码,因为最好自己发现它。
答案 8 :(得分:0)
如果猜测的数字不等于实际数字,请使用带有条件的外部while
循环。在while子句的主体中,您使用if
语句将案例上下分开。整个代码看起来像这样:
import javax.swing.*;
public class Oppg3 {
public static void main(String[] args) {
int number = 7;
int guessed = Integer.parseInt(JOptionPane.showInputDialog("Guess a number between 1 and 10"));
while(guessed!=number) {
if(guessed>number) guessed = Integer.parseInt(JOptionPane.showInputDialog(guessed + " is wrong. Try a lower number."));
else guessed = Integer.parseInt(JOptionPane.showInputDialog(guessed + " is wrong. Try a higher number."));
}
JOptionPane.showMessageDialog(null, guessed + " is correct!");
}
}