Java 为什么可以';我不能访问while循环中的变量
由于某些原因,我无法从while循环中访问变量。我已经查看了其他关于这个的帖子,但是我仍然无法理解 听到我的密码:Java 为什么可以';我不能访问while循环中的变量,java,netbeans,Java,Netbeans,由于某些原因,我无法从while循环中访问变量。我已经查看了其他关于这个的帖子,但是我仍然无法理解 听到我的密码: package pandacare; import java.util.Random; public class PandaCare { Random r = new Random(); int HWT; int hunger = 0; int fun = 0; int thirst = 0; int energy = 0; int hygiene = 0; int poin
package pandacare;
import java.util.Random;
public class PandaCare {
Random r = new Random();
int HWT;
int hunger = 0;
int fun = 0;
int thirst = 0;
int energy = 0;
int hygiene = 0;
int points = 0;
int coins = 1000;
int total = hunger + fun +thirst + energy + hygiene;
public void hungerWait(){
int Low = 5;
int High = 30;
HWT = r.nextInt(High-Low) + Low;
try {
Thread.sleep(5000);
}
catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
hunger --;
}
while(hunger > 0){
hungerWait();
}
}
花点时间仔细查看您的代码
public class PandaCare {
//...
public void hungerWait() {
int Low = 5;
int High = 30;
HWT = r.nextInt(High - Low) + Low;
try {
Thread.sleep(5000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
hunger--;
}
// This won't work, it's not a valid statement...
while(hunger > 0){
hungerWait();
}
}
while(饥饿>0)
不属于任何方法。代码只能在静态块/初始化或方法中执行
您需要将循环封装在某种方法中
举个(粗糙的)例子
public class PandaCare {
//...
public void hungerWait() {
int Low = 5;
int High = 30;
HWT = r.nextInt(High - Low) + Low;
try {
Thread.sleep(5000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
hunger--;
}
public void waitTillNoHungry() {
while(hunger > 0){
hungerWait();
}
}
}
因为while循环在任何方法之外…程序员是对的,顺便问一下,你的主要方法在哪里,你不能访问哪个变量?如果我把它放在main方法中,我说我可以访问非静态变量和非静态函数,我的main方法在Jframe中class@DaneAshman不清楚您的问题在哪里?好的,我试试,谢谢!如果我将while循环放在一个方法中,它还会始终检查括号中的内容是否正确吗@这是一个方法,如果你调用它,它将运行代码…有没有办法让这个方法始终运行@MadProgrammer但它不能在main方法@MadProgrammer中调用非静态方法