【发布时间】:2014-10-16 23:25:48
【问题描述】:
我必须让用户想出一个介于 1 和 1000 之间的整数。他们不会将这个数字输入到他们只是想出来的计算机中。
- 这个程序会生成一个随机数。
- 用户必须指出猜测是否太高、太低或正确(提示程序可以让用户输入 1 表示高 2 表示低或 3 表示正确)
- 你的程序会做出另一个猜测。
- 用户必须指出猜测是否太高、太低或正确。
- 这个过程一直持续到计算机程序猜到用户号码为止。如果你的程序设计正确,它应该总是在 10 次或更少的时间内猜出这个数字。
现在我对它感到困惑!我写了这个程序,但我不知道如何修复它。
public class NumberGenerating {
int generatedNumber;
public void generateRandomNumber(){
//generate a random number
this.generatedNumber=(int)(Math.random()*1000);
// System.out.println("Generated num is: "+this.generatedNumber);
}
}
和
import java.util.Scanner;
public class NumberGuessing {
byte count;
NumberGenerating newNumber=new NumberGenerating();
//boolean variable to determine if the loop should end
boolean shouldLoopEnd =true;
Scanner input=new Scanner(System.in);
byte userChoice;
int tempNumber, temp2Number;
int tempGenLowNumber=1000;
int tempGenHighNumber=1000;
int tempLowNumber;
// int tempLowNumberOld;
int tempHighNumber=1000;
// int tempHighNumberOld;
public void usingGenerateNumber(){
newNumber.generateRandomNumber();
}
public void isThatCorrect(){
this.temp2Number= newNumber.generatedNumber;
while(shouldLoopEnd){
System.out.println ("The computer guess number is: " + newNumber.generatedNumber);
System.out.println("You have three different choices:");
System.out.println("1. The guessed number was too high.\n"
+ "2. The guessed number was too low\n"
+ "3. The guessed number was correct!");
userChoice=input.nextByte();
if(userChoice==3){
System.out.println("Congratulation!\nGood Luck!");
shouldLoopEnd=false;
}
else if(userChoice==2){ //Call that the number was too low
// this.tempLowNumberOld=this.tempNumber;
while(true){
newNumber.generateRandomNumber();
this.tempNumber=newNumber.generatedNumber;
if(this.tempNumber>this.temp2Number && this.tempNumber<this.tempGenHighNumber //this.tempNumber>this.tempLowNumberOld &&
&& this.tempNumber<this.tempGenLowNumber){
this.tempGenLowNumber= this.tempNumber;
break;
}
}
}
else if(userChoice==1){ //Call that the number was too high
// this.tempHighNumberOld=this.tempNumber;
while(true){
newNumber.generateRandomNumber();
this.tempNumber=newNumber.generatedNumber;
if(this.tempNumber<this.temp2Number && this.tempNumber<this.tempGenLowNumber //this.tempNumber<this.tempHighNumberOld &&
&& this.tempNumber<this.tempGenHighNumber){
this.tempGenHighNumber= this.tempNumber;
break;
}
}
}
count++;
System.out.println("Loop number counter is: "+count);
}
}
}
和
import java.util.Scanner;
public class MainLoop {
public static void main(String[] args) {
NumberGuessing newNumber=new NumberGuessing();
newNumber.usingGenerateNumber();
newNumber.isThatCorrect();
}
}
【问题讨论】:
-
好吧,你已经安装了 JDK。 Java 运行时允许您附加一个调试器并使用它来单步执行您的程序。此类调试器可作为免费和开源软件获得。你为什么不用一个?
-
你需要告诉我们程序在做什么,你期望它做什么,你已经从调试中发现了什么。
-
你怎么了?