gpt4 book ai didi

Java小程序似乎有双重提示

转载 作者:行者123 更新时间:2023-12-02 08:18:20 25 4
gpt4 key购买 nike

当运行我制作的java小程序(一个基本的小猜数字游戏)时,每当它提出问题时,无论是/否还是其他,它都会询问前几个问题,并对结果执行标准程序,然后打开下一个问题并重新打开上一组问题。这种情况会持续很长一段时间,并且不会停止,直到您关闭 html 文件。我希望能够看看我的游戏是否真的有效,并可能玩它,尽管它很简单。谁能帮忙解决这个问题吗?

完整的代码,但前几个问题才是问题的真正根源。

import java.applet.Applet;
import java.awt.Graphics;
import javax.swing.JOptionPane;
import java.util.Random;

public class HelloWorld extends Applet {

public void paint(Graphics g) {

g.drawString ("James mylastname", 50, 25);
String ans1 = JOptionPane.showInputDialog("Please input a value");
String ans2 = JOptionPane.showInputDialog("Please input another value");
String ans3 = JOptionPane.showInputDialog("Please input a final value");
double ans1double = Double.parseDouble(ans1);
double ans2double = Double.parseDouble(ans2);
double ans3double = Double.parseDouble(ans3);
double total = ans1double+ans2double+ans3double;
double average = total/3;
String answer = Double.toString (average);
g.drawString ("The average of these three numbers is " + answer, 50, 50);

Random generator = new Random();
int x = generator.nextInt(100);
x++;
int i;
// attribute names should be firstWordLowerCase
int Prime = 5;
for (i=2; i < x ;i++ ) {
int n = x%i;
if (n==0) {
Prime = 1;
} else {
Prime = 0;
}
}

g.drawString ("A random number has been generated, from 0 to 100. " +
"Follow the dialogue boxes to guess the number. You have three " +
"chances, and three hints.", 50, 75);
int even;
even = JOptionPane.showConfirmDialog(this, "Do you think the number is even?");
if (even == 0) {
if (x%2 == 0) {
g.drawString ("Yes, this number is even.", 50,75);
}
if (x%2 != 0) {
g.drawString ("No, this number is not even.", 50,75);
}
}

if (even == 1) {
if (x%2 == 0) {
g.drawString ("Incorrect. This number is even.", 50,75);
}
if (x%2 != 0) {
g.drawString ("Correct. This number is not even.", 50,75);
}
}

// very bad idea to name one attribute 'Prime' and another 'prime'
int prime;
prime = JOptionPane.showConfirmDialog(this, "Do you think the number is prime?");
if (prime == 0) {
if (Prime == 1) {
g.drawString ("Sorry, the number is not prime.", 50, 100);
}
if (Prime == 0) {
g.drawString ("Correct, the number is prime.", 50, 100);
}
}

if (prime == 1) {
if (Prime == 1) {
g.drawString ("Correct, the number is prime.", 50, 100);
}
if (Prime == 0) {
g.drawString ("Sorry, the number is not prime.", 50, 100);
}
}

int moreless;
moreless = JOptionPane.showConfirmDialog(this, "Do you think the number is 50 or lower?");
if (moreless == 0) {
if (x <= 50) {
g.drawString ("Correct. The number is 50 or less.", 50, 125);
}
if (x > 50) {
g.drawString ("Incorrect. The number is higher than 50.", 50, 125);
}
}

if (moreless == 1) {
if (x<= 50) {
g.drawString ("Incorrect. The number is lower than 50.", 50, 125);
}
if (x > 50) {
g.drawString ("Correct. The number is higher than 50.", 50, 125);
}
}

String guess1 = JOptionPane.showInputDialog("Please guess what you think the number is.");
double guess1double = Double.parseDouble(guess1);
if (guess1double == x) {
g.drawString ("Correct! You guessed the number!", 50, 150);
return;
}
if (guess1double != x) {
g.drawString ("Incorrect! Please guess again, you have two more tries!", 50, 150);
}

String guess2 = JOptionPane.showInputDialog("Please guess again.");
double guess2double = Double.parseDouble(guess2);
if (guess2double == x) {
g.drawString ("Correct! You guessed the number!", 50, 175);
return;
}

if (guess2double != x) {
g.drawString ("Incorrect! Please guess again, you have one more try!", 50, 150);
}

String guess3 = JOptionPane.showInputDialog("Please guess again.");
double guess3double = Double.parseDouble(guess3);
if (guess3double == x) {
g.drawString ("Correct! You guessed the number!", 50, 200);
return;
}

if (guess3double != x) {
g.drawString ("Incorrect! Sorry, that was your last guess!", 50, 200);
}
}
}

最佳答案

放置那些只需要执行一次的代码部分的正确位置是在 init() 方法中。

DemoApplet.java

// <applet code='DemoApplet' width='400' height='400'></applet>
import java.applet.Applet;

public class DemoApplet extends Applet {

@Override
public void init() {
System.out.println("init() once only at start-up");
}

@Override
public void start() {
System.out.println("start() potentially many times " +
"(e.g. each time restored from minimized)");
}

@Override
public void stop() {
System.out.println("stop() potentially many times " +
"(e.g. each time minimized)");
}

@Override
public void destroy() {
System.out.println("destroy() once only at shut down");
}
}

I/O 示例

prompt>appletviewer DemoApplet.java
init() once only at start-up
start() potentially many times (e.g. each time restored from minimized)
stop() potentially many times (e.g. each time minimized)
start() potentially many times (e.g. each time restored from minimized)
stop() potentially many times (e.g. each time minimized)
start() potentially many times (e.g. each time restored from minimized)
stop() potentially many times (e.g. each time minimized)
destroy() once only at shut down

关于Java小程序似乎有双重提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com