我正在尝试制作一个迷你游戏,用户必须猜测他的号码是高于还是低于计算机。
我在制作扫描仪(如果有必要)和if / else if / else -statement时遇到了一些麻烦。
我的代码如下所示:
import java.util.Random;
import javax.swing.JOptionPane;
public class Main {
public static void main(String args)
{
//This will create the numbers.
Random userNumber = new Random(10);
Random comNumber = new Random(10);
System.out.println("The USER was given the number: " + userNumber);
System.out.println("The COMPUTER was given the number: " + comNumber);
//This will ask if the USERS think that their number is HEIGHER, LOWER or EQUAL TO the COMPUTER's number.
String heigerOrLower = JOptionPane.showInputDialog("Do you thinks that your number is heigher(H), lower(L) or equal-to(e) the computer's? ");
//This if / else -statement will check if the users choice is right or wrong.
if(){
}
}
}
我不知道如何对语句进行检查:
1)如果用户的号码低于计算机的号码 - 并且用户同时键入“L”。
2)如果用户的号码等于计算机的号码 - 并且用户同时键入“E”。
3)如果用户的号码高于计算机的号码 - 并且用户同时键入“H”。
答案 0 :(得分:3)
Random
个对象提供了一个可以生成随机数的源 - 它们本身不是随机数。您只需要一个Random
实例:
Random rand = new Random()
int userNumber = rand.nextInt(10);
int comNumber = rand.nextInt(10);
现在,您可以用数字比较userNumber
和comNumber
。例如,要完成你的第一点:
if (userNumber < comNumber && higherOrLower.equalsIgnoreCase("L")) {
...
}
答案 1 :(得分:0)
我不确定你有什么问题,因为你甚至没有尝试过if语句,但你可以使用多个
您可以使用多个if语句。
if(condition1) {
//do stuff
}
if(condition2) {
//do stuff
}
甚至是if else块
if(condition1) {
//do stuff
}
else if(condition2) {
//do stuff
}
答案 2 :(得分:0)
这不是编译的,但这应该足够接近,以便给你一个想法。
if ((userNumber < comNumber) && higherOrLower.equals("L") ) {
(1)
} else if ((userNumber == comNumber) && higherOrLower.equals("E") ) {
(2)
} else if ((userNumber > comNumber) && higherOrLower.equals("H") ) {
(3)
} else {
///other
}
答案 3 :(得分:0)
您对Random
的使用是错误的,但对于案例测试,您可以使用enum
清晰灵活的资金。
enum Cmp {
L {
@Override
boolean good(int a, int b) {
return a < b;
}
},
E {
@Override
boolean good(int a, int b) {
return a == b;
}
},
H {
@Override
boolean good(int a, int b) {
return a > b;
}
};
abstract boolean good(int a, int b);
}
private static void test(int a, int b, Cmp cmp) {
System.out.println("Cmp="+cmp+" a="+a+" b="+b+" -> "+cmp.good(a, b));
}
public static void main(String args[]) {
try {
test ( 1, 2, Cmp.valueOf("L"));
test ( 1, 2, Cmp.valueOf("E"));
test ( 1, 2, Cmp.valueOf("H"));
test ( 1, 1, Cmp.L);
test ( 1, 1, Cmp.E);
test ( 1, 1, Cmp.H);
test ( 1, 0, Cmp.L);
test ( 1, 0, Cmp.E);
test ( 1, 0, Cmp.H);
} catch (Throwable t) {
t.printStackTrace(System.err);
}
}
答案 4 :(得分:0)
扫描仪位用于读取用户的输入。
Scanner input = new Scanner(System.in); //import java.util.Scanner;
System.out.println("Enter your choice (H)igher (L)ower (e)ven");
String userInput = input.nextLine();
boolean validEntry = false;
while(!validEntry){
if(userInput.equalsIgnoreCase("H")){
//H was entered and valid
validEntry = true;
}else if(userInput.equalsIgnoreCase("L")){
//L was entered and valid
validEntry = true;
}else if(userInput.equalsIgnoreCase("e")){
//e was entered and valid
validEntry = true;
}
}
循环是一个有效的入口循环,并将保持循环,直到选择了3个选项中的一个。其余部分检查用户输入的内容。
其余的代码由您决定如何使用它。