Java类和在其他类中调用变量
我对java编程还是相当陌生的,我已经了解了一些方面,但是java中的类给我带来了最大的麻烦。我试图做的是做一个随机数字游戏,玩家必须选择一个数字1到10,如果它是错误的,然后再试一次,让程序记录他们猜了多少次(但如果之前已经选择了一个数字,或者如果选择的数字超出了指定范围,则不增加猜数)我已经编写了逻辑代码,并试图创建一个专门用于逻辑的类和一个专门用于I/O接口的类。但我过得很开心。任何输入或提示都将非常感谢,我将提供我已经拥有的以下代码: 这是我希望它处理所有逻辑的逻辑类Java类和在其他类中调用变量,java,class,Java,Class,我对java编程还是相当陌生的,我已经了解了一些方面,但是java中的类给我带来了最大的麻烦。我试图做的是做一个随机数字游戏,玩家必须选择一个数字1到10,如果它是错误的,然后再试一次,让程序记录他们猜了多少次(但如果之前已经选择了一个数字,或者如果选择的数字超出了指定范围,则不增加猜数)我已经编写了逻辑代码,并试图创建一个专门用于逻辑的类和一个专门用于I/O接口的类。但我过得很开心。任何输入或提示都将非常感谢,我将提供我已经拥有的以下代码: 这是我希望它处理所有逻辑的逻辑类 package g
package guessapp;
import java.util.HashSet;
import java.util.Scanner;
public class GuessLogic {
public static int Logic() {
HashSet<Integer> hs = new HashSet<>();
int GuessLogic = (int) (Math.random() * 10 + 1);
Scanner keyboard = new Scanner(System.in);
int A;
int guess;
int NumGuess = 1;
do {
guess = keyboard.nextInt();
if (hs.contains(guess)) {
A = 1;
return A;
}
if (guess < 0 || guess > 10) {
A = 2;
return A;
}
if (guess == GuessLogic) {
A = 3;
return A; // this will stop the loop
} else if (guess < GuessLogic) {
NumGuess++;
A = 4;
return A;
} else if (guess > GuessLogic) {
NumGuess++;
A = 5;
return A;
}
hs.add(guess);
} while (true);
}
public static int getGuess() {
int guess;
Scanner keyboard = new Scanner(System.in);
guess = keyboard.nextInt();
return guess;
}
}
以下是修改后的代码。这里有一些一般的想法:
GuessLogic
应该用作实例,而不是静态类。因为您需要GuessLogic
来保存操作和目标编号main
中编码。因为GuessLogic
只负责逻辑集合
是唯一的,因此无需自己计算有多少个不同的数字public class GuessApp {
public static void main(String[] args) {
int r, w, y;
GuessLogic guessLogic = new GuessLogic();
while(true){
System.out.print("Enter a guess: ");
w = guessLogic.getGuess();
r = guessLogic.Logic();
if (r == 1) {
System.out.println("You have already entered this number");
continue;
}
if (r == 2) {
System.out.println("Your guess is out of the specified range. Please try again.");
continue;
}
System.out.println("Your guess is " + w);
if (r == 3) {
System.out.println("You got it right!! Congrats!! Total Number of Guesses: " + guessLogic.getNumber());
break;
} else if (r == 4) {
System.out.println("You are wrong!!! Hint: Guess Higher, Guess number: " + guessLogic.getNumber());
} else if (r == 5) {
System.out.println("You are wrong!!! Hint: Guess Lower, Guess number: " + guessLogic.getNumber());
}
}
}
}
猜测逻辑:
public class GuessLogic {
HashSet<Integer> hs = new HashSet<>();
int number = (int) (Math.random() * 10 + 1);
public int getNumber(){
return hs.size();
}
public int Logic(int guess) {
if (hs.contains(guess)) {
return 1;
}
if (guess < 0 || guess > 10) {
return 2;
}
if (guess == number) {
return 3; // this will stop the loop
} else if (guess < number) {
// just add to the set. The set will guarantee that there is no repetitive item.
hs.add(guess);
return 4;
} else if (guess > number) {
hs.add(guess);
return 5;
}
return -1;
}
public int getGuess() {
int guess;
Scanner keyboard = new Scanner(System.in);
guess = keyboard.nextInt();
return guess;
}
}
公共类逻辑{
HashSet hs=新的HashSet();
整数=(int)(Math.random()*10+1);
public int getNumber(){
返回hs.size();
}
公共整数逻辑(整数猜测){
如果(hs.包含(猜测)){
返回1;
}
如果(猜测<0 | |猜测>10){
返回2;
}
如果(猜测==数字){
return 3;//这将停止循环
}else if(猜测<数字){
//只需添加到集合中。集合将保证没有重复项。
hs.添加(猜测);
返回4;
}否则如果(猜测>数字){
hs.添加(猜测);
返回5;
}
返回-1;
}
公共int getGuess(){
智力猜测;
扫描仪键盘=新扫描仪(System.in);
guess=keyboard.nextInt();
返回猜测;
}
}
您的代码没有编译,特别是返回A,NumGuess代码>没有意义。如果你不喜欢,我建议你使用ad IDE。它会告诉你关于编译时错误的描述,你可以通过这些描述找到答案。。。你应该接受你以前帖子的答案。您有一个与类同名的int GuessLogic
。当前不会编译此文件。请对变量和方法进行分类
public class GuessLogic {
HashSet<Integer> hs = new HashSet<>();
int number = (int) (Math.random() * 10 + 1);
public int getNumber(){
return hs.size();
}
public int Logic(int guess) {
if (hs.contains(guess)) {
return 1;
}
if (guess < 0 || guess > 10) {
return 2;
}
if (guess == number) {
return 3; // this will stop the loop
} else if (guess < number) {
// just add to the set. The set will guarantee that there is no repetitive item.
hs.add(guess);
return 4;
} else if (guess > number) {
hs.add(guess);
return 5;
}
return -1;
}
public int getGuess() {
int guess;
Scanner keyboard = new Scanner(System.in);
guess = keyboard.nextInt();
return guess;
}
}