Java I';在我的随机数字猜测游戏中,我一直在玩while循环

Java I';在我的随机数字猜测游戏中,我一直在玩while循环,java,if-statement,while-loop,do-while,Java,If Statement,While Loop,Do While,希望它在所有内容中循环,直到用户输入正确的数字。当用户输入错误的号码时,应该说“输入其他号码”。当用户输入正确的号码时,应该说“恭喜你赢了”。但在那之前,它会循环并说“输入一个不同的数字”,在5次尝试后,我希望它说“你失败了这个任务!你想再试一次吗?” 如果他们在一次尝试中猜到了,他们会给500美元,第二次尝试400美元,以此类推,直到5次尝试 import javax.swing.*; import java.util.Random; public class Projekt_1 {

希望它在所有内容中循环,直到用户输入正确的数字。当用户输入错误的号码时,应该说“输入其他号码”。当用户输入正确的号码时,应该说“恭喜你赢了”。但在那之前,它会循环并说“输入一个不同的数字”,在5次尝试后,我希望它说“你失败了这个任务!你想再试一次吗?”

如果他们在一次尝试中猜到了,他们会给500美元,第二次尝试400美元,以此类推,直到5次尝试

import javax.swing.*;
import java.util.Random;

public class Projekt_1 {

    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "WELCOME TO GUESS GAME!" + "\nYou gonna guess a number between 1 and 20 " + "\nYou have  5 tries to guess the number! " + "\nYou gonna get more money on less tries, highest win are 500 dollar on one try! " + "\nHOPE YOU LIKE IT :)");

        Random talet = new Random();
        int secretnumber = talet.nextInt(20) + 1;
        int tries = 0;
        int money = 600;
        String number;

        int guess;
        boolean win = false;

        while (win == false) {
            number = JOptionPane.showInputDialog("Guess a number between 1 and 20");
            guess = Integer.parseInt(number);
            tries++;

            if (guess == secretnumber) {
                win = true;
            } else if (guess > secretnumber) {
                JOptionPane.showInputDialog("Your number is to low :(" + "\nType in a higher number!");
                guess = Integer.parseInt(number);
            } else if (guess < secretnumber) {
                JOptionPane.showInputDialog("Your number is to high :(" + "\nType ina a lower number!");
                guess= Integer.parseInt(number);
            }
        }

        JOptionPane.showMessageDialog(null, "Congrats you won!" + "\nYour number was " + secretnumber + "\nit took you " + tries + "tries");
    }
}   
import javax.swing.*;
导入java.util.Random;
公共类项目1{
公共静态void main(字符串[]args){
JOptionPane.showMessageDialog(null,“欢迎参加猜谜游戏!”+“\n您要猜一个介于1和20之间的数字”+“\n您有5次尝试来猜这个数字!”+“\n您可以通过较少的尝试获得更多的钱,一次尝试最高赢取500美元!”+“\n希望您喜欢它:);
Random talet=新的Random();
int secretnumber=talet.nextInt(20)+1;
int=0;
国际货币=600;
字符串编号;
智力猜测;
布尔赢=假;
while(win==false){
number=JOptionPane.showInputDialog(“猜一个介于1和20之间的数字”);
guess=Integer.parseInt(数字);
尝试++;
如果(猜测==秘密数字){
赢=真;
}else if(猜测>秘密编号){
JOptionPane.showInputDialog(“您的号码太低了:(“+”\n请输入一个更高的号码!”);
guess=Integer.parseInt(数字);
}else if(猜测<秘密数字){
JOptionPane.showInputDialog(“您的数字太高了:(“+”\n请输入一个较低的数字!”);
guess=Integer.parseInt(数字);
}
}
JOptionPane.showMessageDialog(null,“恭喜你赢了!”+“\n你的号码是”+secretnumber+“\n它带走了你”+trys+“trys”);
}
}   

循环中添加一个附加条件将起作用。如果
försök
是最大值为
5的尝试次数(在您的情况下),则条件应为:

while (win == false && försök<5) //if försök starts from 0 
{
   //code
   if(win==true)
   break;
   försök++;
}
基本上,您的代码应该是这样的:

import javax.swing.*;
import java.util.Random;

class Projekt_1
{
public static void main(String[] args) {
        final int maxTries = 5;
        JOptionPane.showMessageDialog(null, "Welcome... " + maxTries + " tries ... 500 krones ");

        final Random rnd = new Random();
        final int hemligtnummer = rnd.nextInt(20) + 1;
        int tryCounter = 0;
        final int pengar = 500;
        String nummer;

        int guess = -1;

        while (guess != hemligtnummer && tryCounter < maxTries) {
            if(tryCounter==0)
            nummer = JOptionPane.showInputDialog("...a number 1 and 20");
            else
            nummer = JOptionPane.showInputDialog("Enter no...");
            guess = Integer.parseInt(nummer);
            if (guess == hemligtnummer) {
                break;
            } else if (guess > hemligtnummer) {
                JOptionPane.showMessageDialog(null, "Try " + (tryCounter+1) + " was too big try a smaller one");
            } else if (guess < hemligtnummer) {
                JOptionPane.showMessageDialog(null, "Try " + (tryCounter+1) + " too small try a bigger one");
            }
            tryCounter++;
        }
        if(tryCounter==5){
            JOptionPane.showMessageDialog(null,"Grattis du vann!" + "\nteh number was " + hemligtnummer + "\nDet tog dig " + tryCounter + " försök");
            JOptionPane.showMessageDialog(null, "Your price is :" + (pengar - tryCounter * 100) + " Krones");
        }
        else
        {
            JOptionPane.showMessageDialog(null,"congrats you won"+"Your price is :" + (pengar - tryCounter * 100) + " Krones" );
        }
    }
}
import javax.swing.*;
导入java.util.Random;
项目1类
{
公共静态void main(字符串[]args){
最终整数最大值=5;
showMessageDialog(null,“欢迎…”+maxTries+“尝试…500克朗”);
最终随机rnd=新随机();
最终整数hemligtnummer=rnd.nextInt(20)+1;
int tryCounter=0;
最终int pengar=500;
字符串努默;
int guess=-1;
while(猜测!=hemligtnummer&&tryCounterHemligtnumer){
showMessageDialog(null,“Try”+(tryCounter+1)+“太大,请尝试较小的”);
}否则如果(猜测
您可以使用控制中断while循环。当尝试次数超过5次或输入正确的次数时,该循环将被中断。
请参阅下面的参考内容

Scanner s = new Scanner(System.in);
        int numOfTries = 0;
        int input;
        int correctNumn = 15;

        while (true) {

            input = s.nextInt();
            if (input != correctNumn && numOfTries <= 5) {

                numOfTries++;
                if (numOfTries == 5) {
                    System.out.println("Game Over");
                    break;
                }

                continue;
            } else if (input == correctNumn) {
                System.out.println("corect ans");
                break;
            }

        }
Scanner s=新的扫描仪(System.in);
整数=0;
int输入;
int-correctNumn=15;
while(true){
输入=s.nextInt();

如果(input!=correctNumn&&numOfTries如果你用母语发布所有内容,那么帮你真的很难……但这是我的答案

您的代码的问题在于hole logi,您从不使用变量trytes(försök),如果用户猜错了数字,那么您将再次读取try,但您应该再次启动while的逻辑

无论如何

例子:
publicstaticvoidmain(字符串[]args){
最终整数最大值=5;
showMessageDialog(null,“欢迎…”+maxTries+“尝试…500克朗”);
最终随机rnd=新随机();
最终整数hemligtnummer=rnd.nextInt(20)+1;
int tryCounter=0;
最终int pengar=600;
字符串努默;
int guess=-1;
while(猜测!=hemligtnummer&&tryCounterHemligtnumer){
showMessageDialog(null,“Try”+tryCounter+“太大了,请尝试一个较小的”);
}否则如果(猜测
我假设
f
Scanner s = new Scanner(System.in);
        int numOfTries = 0;
        int input;
        int correctNumn = 15;

        while (true) {

            input = s.nextInt();
            if (input != correctNumn && numOfTries <= 5) {

                numOfTries++;
                if (numOfTries == 5) {
                    System.out.println("Game Over");
                    break;
                }

                continue;
            } else if (input == correctNumn) {
                System.out.println("corect ans");
                break;
            }

        }
public static void main(String[] args) {
        final int maxTries = 5;
        JOptionPane.showMessageDialog(null, "Welcome... " + maxTries + " tries ... 500 krones ");

        final Random rnd = new Random();
        final int hemligtnummer = rnd.nextInt(20) + 1;
        int tryCounter = 0;
        final int pengar = 600;
        String nummer;

        int guess = -1;

        while (guess != hemligtnummer && tryCounter < maxTries) {
            nummer = JOptionPane.showInputDialog("...a number 1 and 20");
            guess = Integer.parseInt(nummer);
            tryCounter++;

            if (guess == hemligtnummer) {
                break;
            } else if (guess > hemligtnummer) {
                JOptionPane.showMessageDialog(null, "Try " + tryCounter + " was too big try a smaller one");
            } else if (guess < hemligtnummer) {
                JOptionPane.showMessageDialog(null, "Try " + tryCounter + "too small try a bigger one");
            }
        }
        JOptionPane.showMessageDialog(null,
                "Grattis du vann!" + "\nteh number was " + hemligtnummer + "\nDet tog dig " + tryCounter + " försök");
        JOptionPane.showMessageDialog(null, "Your price is :" + (pengar - tryCounter * 100) + " Krones");
    }