我看了这个,但没找到多少。这是代码:
public class Core {
int amount = 0;
public void startup(int Items) {
int x = 0;
System.out.println("Welcome Back,");
while(x < amount) {
amount++;
x++;
}
}
agendaitem[] item = new agendaitem[150];
public void instantiate(String name, String status, String comments,int i) {
item[i] = new agendaitem();
item[i].name = name;
item[i].complete = status;
item[i].comments = comments;
}
public void error(String reason) {
System.out.println("Error"+reason);
}
public void setitem(String input) throws Exception {
Interface interf = new Interface();
System.out.println(amount);
int x = 0;
while(x < amount) {
interf.inputb(item[amount].name);
break;
}
}
public void setstatus() {
}
public void rename() {
}
public void delete() {
}
}
基本上我需要设置变量的值,使其与方法启动中的Items值相同。然后我需要从方法setitem访问金额。但无论出于何种原因,即使我通过运行启动将值设置为2,setitem也会将数量视为0。有什么建议?谢谢。 :)
答案 0 :(得分:1)
在startup
内的循环内,您正在递增x
和amount
。因此,如果x < amount
,则始终是x < amount
的情况 - 至少在amount
到达MAXINT
之前。
我强烈建议您学习使用调试器。你会立即发现这个错误。
答案 1 :(得分:0)
while(x < amount)
将返回false
,因为x
和amount
在开头都是0,因此amount
将始终保持0值。为什么不做呢
amount = items
您的startup
方法看起来像这样.-
public void startup(int Items) {
amount = Items;
}
顺便说一句,遵循java命名约定,Items
应该被称为items
,camelCase。
答案 2 :(得分:0)
我认为您可以寻找的是将“amount”作为Core类中的静态变量。这将涉及声明如下:
static int amount = 0;
请参阅此处获取信息:http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html