Java 显示的消息不正确

Java 显示的消息不正确,java,Java,我不能让这个程序显示消息“数字超出范围”当用户把一个数字超出(1-6)。我尝试了不同的编码方式,但我不知道我做错了什么 public static void main(String[] args) { int guess = 0; int tries = 3; Scanner input = new Scanner(System.in); Random ran = new Random(); int diceNumber = ran.nextInt(6)

我不能让这个程序显示消息“数字超出范围”当用户把一个数字超出(1-6)。我尝试了不同的编码方式,但我不知道我做错了什么

public static void main(String[] args) {

    int guess = 0;
    int tries = 3;
    Scanner input = new Scanner(System.in);
    Random ran = new Random();
    int diceNumber = ran.nextInt(6)+1;
    System.out.println(diceNumber);

    System.out.println("Insert a number between 1 and 6 : you have " + tries + " tries.");
    guess = input.nextInt();

    while((tries >1 && (guess <7 || guess>0))) {
        tries--;
        System.out.println("Incorrect Number, you have " +tries+ " more tries.");
        guess = input.nextInt();

    }if(guess >=7 || guess<=0 && (tries >1)){
        --tries;
        System.out.println("Number out of range, try again; you have " + tries + " more tries.");
        guess = input.nextInt();    

    } if(tries ==0 || guess != diceNumber)  {
        System.out.println("You Lose!!");

    } else if(guess == diceNumber){
        System.out.println("You Win!!");
    }
}
publicstaticvoidmain(字符串[]args){
int guess=0;
int=3;
扫描仪输入=新扫描仪(System.in);
Random ran=新的Random();
int diceNumber=ran.nextInt(6)+1;
系统输出打印项次(数字);
System.out.println(“插入一个介于1和6之间的数字:您有“+tries+”tries.”);
guess=input.nextInt();
而((尝试>1&&(猜测0))){
尝试--;
System.out.println(“号码不正确,您有“+次尝试+”次尝试”);
guess=input.nextInt();
}如果(猜测>=7 | |猜测1)){
--尝试;
System.out.println(“数量超出范围,请重试;您有“+次尝试+”次尝试。”);
guess=input.nextInt();
}如果(尝试==0 | |猜测!=数字){
System.out.println(“你输了!!”;
}else if(猜测==数字){
System.out.println(“你赢了!!”;
}
}

在while循环开始时,您需要定位条件以检查输入是否有效。目前,只有在所有尝试均已完成后,才会检查该输入,因为您在该输入之前结束while循环

此外,您应该将while循环条件从
(trys>1&&(guess 0))
更改为
(trys>1&&guess!=diceNumber)
,因为如果输入的数字超出范围,您可能不想退出循环

代码-

public static void main(String[] args) {

    int guess = 0;
    int tries = 3;
    Scanner input = new Scanner(System.in);
    Random ran = new Random();
    int diceNumber = ran.nextInt(6)+1;
    System.out.println(diceNumber);

System.out.println("Insert a number between 1 and 6 : you have " + tries + " tries.");
guess = input.nextInt();


while((tries >1 && guess != diceNumber)) {
    if((guess >=7 || guess<=0) && (tries >1)){
        --tries;
        System.out.println("Number out of range, try again; you have " + tries + " more tries.");
        guess = input.nextInt();
    }
    else {
        tries--;
        System.out.println("Incorrect Number, you have " +tries+ " more tries.");
        guess = input.nextInt();
    }

}

if(tries ==0 || guess != diceNumber)  {
    System.out.println("You Lose!!");

} else if(guess == diceNumber){
    System.out.println("You Win!!");
}

}
publicstaticvoidmain(字符串[]args){
int guess=0;
int=3;
扫描仪输入=新扫描仪(System.in);
Random ran=新的Random();
int diceNumber=ran.nextInt(6)+1;
系统输出打印项次(数字);
System.out.println(“插入一个介于1和6之间的数字:您有“+tries+”tries.”);
guess=input.nextInt();
while((尝试>1&&guess!=diceNumber)){
如果((猜测>=7 | |猜测1)){
--尝试;
System.out.println(“数量超出范围,请重试;您有“+次尝试+”次尝试。”);
guess=input.nextInt();
}
否则{
尝试--;
System.out.println(“号码不正确,您有“+次尝试+”次尝试”);
guess=input.nextInt();
}
}
如果(尝试==0 | |猜测!=数字){
System.out.println(“你输了!!”;
}else if(猜测==数字){
System.out.println(“你赢了!!”;
}
}

在while循环开始时,您需要定位条件以检查输入是否有效。目前,只有在所有尝试均已完成后,才会检查该输入,因为您在该输入之前结束while循环

此外,您应该将while循环条件从
(trys>1&&(guess 0))
更改为
(trys>1&&guess!=diceNumber)
,因为如果输入的数字超出范围,您可能不想退出循环

代码-

public static void main(String[] args) {

    int guess = 0;
    int tries = 3;
    Scanner input = new Scanner(System.in);
    Random ran = new Random();
    int diceNumber = ran.nextInt(6)+1;
    System.out.println(diceNumber);

System.out.println("Insert a number between 1 and 6 : you have " + tries + " tries.");
guess = input.nextInt();


while((tries >1 && guess != diceNumber)) {
    if((guess >=7 || guess<=0) && (tries >1)){
        --tries;
        System.out.println("Number out of range, try again; you have " + tries + " more tries.");
        guess = input.nextInt();
    }
    else {
        tries--;
        System.out.println("Incorrect Number, you have " +tries+ " more tries.");
        guess = input.nextInt();
    }

}

if(tries ==0 || guess != diceNumber)  {
    System.out.println("You Lose!!");

} else if(guess == diceNumber){
    System.out.println("You Win!!");
}

}
publicstaticvoidmain(字符串[]args){
int guess=0;
int=3;
扫描仪输入=新扫描仪(System.in);
Random ran=新的Random();
int diceNumber=ran.nextInt(6)+1;
系统输出打印项次(数字);
System.out.println(“插入一个介于1和6之间的数字:您有“+tries+”tries.”);
guess=input.nextInt();
while((尝试>1&&guess!=diceNumber)){
如果((猜测>=7 | |猜测1)){
--尝试;
System.out.println(“数量超出范围,请重试;您有“+次尝试+”次尝试。”);
guess=input.nextInt();
}
否则{
尝试--;
System.out.println(“号码不正确,您有“+次尝试+”次尝试”);
guess=input.nextInt();
}
}
如果(尝试==0 | |猜测!=数字){
System.out.println(“你输了!!”;
}else if(猜测==数字){
System.out.println(“你赢了!!”;
}
}

以下代码将为您获取预期结果

   import java.util.Random;
import java.util.Scanner;

public class Dice {

    public static void main(String[] args) {

        int guess = 0;
        int tries = 3;
        Scanner input = new Scanner(System.in);
        Random ran = new Random();
        int diceNumber = ran.nextInt(6) + 1;
        System.out.println(diceNumber);

        System.out.println("Insert a number between 1 and 6 : you have "
                + tries + " tries.");
        guess = input.nextInt();

        loop: while ((tries >= 1)) {
            --tries;
            if ((guess >= 7 || guess <= 0) && (tries >= 1)) {

                System.out.println("Number out of range, try again; you have "
                        + tries + " more tries.");
                guess = input.nextInt();
            } else {

                if (guess == diceNumber) {
                    System.out.println("You Win!!");
                    break loop;
                } else if (tries >= 1) {
                    System.out.println("Incorrect Number, you have " + tries
                            + " more tries.");
                    guess = input.nextInt();

                }
            }
        }

        if (tries == 0 && guess != diceNumber) {
            System.out.println("You Lose!!");
        }

    }
}
import java.util.Random;
导入java.util.Scanner;
公共类骰子{
公共静态void main(字符串[]args){
int guess=0;
int=3;
扫描仪输入=新扫描仪(System.in);
Random ran=新的Random();
int diceNumber=ran.nextInt(6)+1;
系统输出打印项次(数字);
System.out.println(“插入一个介于1和6之间的数字:您有”
+尝试+“尝试”);
guess=input.nextInt();
循环:while((尝试次数>=1)){
--尝试;
如果((猜测>=7 | |猜测=1)){
System.out.println(“数字超出范围,请重试;您有”
+尝试+“更多尝试”。);
guess=input.nextInt();
}否则{
如果(猜测==数字){
System.out.println(“你赢了!!”;
断环;
}else if(尝试次数>=1){
System.out.println(“号码不正确,您有”+次尝试
+“更多尝试。”);
guess=input.nextInt();
}
}
}
如果(尝试==0&&guess!=diceNumber){
System.out.println(“你输了!!”;
}
}
}

以下代码将为您获取预期结果

   import java.util.Random;
import java.util.Scanner;

public class Dice {

    public static void main(String[] args) {

        int guess = 0;
        int tries = 3;
        Scanner input = new Scanner(System.in);
        Random ran = new Random();
        int diceNumber = ran.nextInt(6) + 1;
        System.out.println(diceNumber);

        System.out.println("Insert a number between 1 and 6 : you have "
                + tries + " tries.");
        guess = input.nextInt();

        loop: while ((tries >= 1)) {
            --tries;
            if ((guess >= 7 || guess <= 0) && (tries >= 1)) {

                System.out.println("Number out of range, try again; you have "
                        + tries + " more tries.");
                guess = input.nextInt();
            } else {

                if (guess == diceNumber) {
                    System.out.println("You Win!!");
                    break loop;
                } else if (tries >= 1) {
                    System.out.println("Incorrect Number, you have " + tries
                            + " more tries.");
                    guess = input.nextInt();

                }
            }
        }

        if (tries == 0 && guess != diceNumber) {
            System.out.println("You Lose!!");
        }

    }
}
import java.util.Random;
导入java.util.Scanner;
公共类骰子{
公共静态void main(字符串[]args){
int guess=0;
int=3;
扫描仪输入=新扫描仪(System.in);
Random ran=新的Random();
int diceNumber=ran.nextInt(6)+1;
系统输出打印项次(数字);
System.out.println(“插入一个介于1和6之间的数字:您有”
+尝试+“尝试”);
guess=input.nextInt();
循环:while((尝试次数>=1)){
--尝试;
如果((猜测>=7 | |猜测=1)){
System.out.println(“数字超出范围,请重试;您有”
+尝试+“更多尝试”。);
guess=input.nextInt();
}否则{