java - 我在随机数猜谜游戏中遇到了 while 循环

标签 java if-statement while-loop do-while

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

如果他们猜中 1 次,他们将给予 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");
    }
}   

最佳答案

while 循环中添加附加条件将起作用。如果 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++;
}

要显示消息和分数,您可以在 while 循环之后检查 försök 的值:

if(försök==5)
{
      // display this message: "you failed this mission! do you want to try again?" 
     score=0;
}
else
{
     //display: "congrats you won"
      score=(5-försök)*100;
}

基本上你的代码应该是这样的:

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" );
        }
    }
}

关于java - 我在随机数猜谜游戏中遇到了 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36058477/

相关文章:

java - 如何在 NetBeans 中使用相对路径加载文件

java - Java中汉字UTF-16编码字符串

c - 依赖链式 if 语句

java - 如何在回合制战斗java中重复while循环?

java - AtomicInteger 不从主内存读取值以进行非 volatile 可变引用

MYSQL IF SELECT COUNT() 大于零 select * from table else return nothing found

android - 字符串不会在条件下触发但日志输出表明它应该

jquery .ajax 在处理时更新数据(在成功或完成之前)

python - 输入不工作Python

java - 如何对不同的服务进行分组来执行基本逻辑?