Java 高级-If/else If/else-语句
我正在尝试制作一个小游戏,用户必须猜测他的数字是高于还是低于电脑的数字 我在制作扫描仪(如果有必要)和if/else if/else-statement时遇到一些问题 我的代码如下所示:Java 高级-If/else If/else-语句,java,if-statement,Java,If Statement,我正在尝试制作一个小游戏,用户必须猜测他的数字是高于还是低于电脑的数字 我在制作扫描仪(如果有必要)和if/else if/else-statement时遇到一些问题 我的代码如下所示: import java.util.Random; import javax.swing.JOptionPane; public class Main { public static void main(String args) { /
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”。对象提供了一个可以生成随机数的来源——它们本身不是随机数。您只需要一个Random
实例:
Random rand = new Random()
int userNumber = rand.nextInt(10);
int comNumber = rand.nextInt(10);
现在您可以用数字比较userNumber
和comNumber
。例如,要完成第一点:
if (userNumber < comNumber && higherOrLower.equalsIgnoreCase("L")) {
...
}
if(userNumber
我不确定您遇到了什么问题,因为您甚至没有尝试使用if语句,但可以使用多个if语句
可以使用多个if语句
if(condition1) {
//do stuff
}
if(condition2) {
//do stuff
}
甚至一个if-else块
if(condition1) {
//do stuff
}
else if(condition2) {
//do stuff
}
这是没有编译的,但这应该足够接近给你一个想法
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
}
if((userNumbercomname)&&higherOrLower.equals(“H”)){
(3)
}否则{
///其他
}
您使用的随机
是错误的,但对于案例测试,您可以使用清晰灵活的枚举
进行资助
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);
}
}
枚举Cmp{
L{
@凌驾
布尔好(整数a,整数b){
返回ab;
}
};
抽象布尔好(inta,intb);
}
专用静态空隙测试(int a、int b、Cmp){
系统输出打印项次(“Cmp=“+Cmp+”a=“+a+”b=“+b+”->“+Cmp.good(a,b));
}
公共静态void main(字符串参数[]){
试一试{
测试(1,2,Cmp.valueOf(“L”));
测试(1,2,Cmp.valueOf(“E”));
测试(1,2,Cmp.valueOf(“H”));
试验(1,1,Cmp.L);
试验(1,1,Cmp.E);
试验(1,1,Cmp.H);
试验(1,0,Cmp.L);
试验(1,0,Cmp.E);
试验(1,0,Cmp.H);
}捕获(可丢弃的t){
t、 printStackTrace(System.err);
}
}
扫描器位是这样读取用户输入的
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个选项之一。其余部分检查用户输入的内容
代码的其余部分取决于您如何使用此if-then。您是否编写了一些内容供我们检查?您遇到了哪些问题?您想知道如何接受用户输入吗?您想知道如何在
if
语句中设置条件吗?您想知道如何同时检查这两个值吗?顺便问一下,为什么userInput
用newrandom(10)
初始化?你意识到在这种情况下,userInput
不是一个数字,而是一个Random
实例,不是吗?是的,为什么userNumber
Random是一个Random
数字生成器?对不起,我刚刚开始用Java编写代码。我只是认为这是你如何制造一个随机数的,但如果不是,我怎么能制造一个呢?我需要一个随机数,因为这是游戏的主题。好建议,但这不能处理e
用户输入。这个答案也不需要。这个问题不仅仅是用这个答案来回答的。@crush我只回答了OP的第一个问题——其他问题我留给他,因为它们不应该偏离我所展示的太多。