我已经为我的课程创建了一个atm程序。除了这个问题之外,我主要完成了所有事情。无法识别if语句中的变量。我想创建一些id检查,无法识别将变量赋值为true的代码,分配false值的else语句工作正常。这是代码:
boolean k;
String trf = JOptionPane.showInputDialog("Insert [ID <space> Amount]:");
StringTokenizer tr = new StringTokenizer(trf);
tid = tr.nextToken();
int tam = Integer.parseInt(tr.nextToken());
for(int x=0;x<4;x++){
if (t[x].account.getId().equals(tid)){
k = true;
//transfer code here[...]
break;
}
else{
k=false;
}
if(!k){
JOptionPane.showMessageDialog(null, "ID not found");
}
}
在一个人说if之前定义变量之前,我读了一些像这样的话题,但我不能这样做,因为我需要先检查一下这个值。提前谢谢。
答案 0 :(得分:1)
将最后if statement
转出for
循环
for(int x=0;x<4;x++){
if (t[x].account.getId().equals(tid)){
k = true;
//transfer code here[...]
break;
}
else{
k=false;
}
}
if(!k){
JOptionPane.showMessageDialog(null, "ID not found");
}
由于if
true
被评估为break
,则编写最后一个语句的方式将无法执行
答案 1 :(得分:1)
您可以这样做:
boolean k = false;
String trf = JOptionPane.showInputDialog("Insert [ID <space> Amount]:");
StringTokenizer tr = new StringTokenizer(trf);
tid = tr.nextToken();
int tam = Integer.parseInt(tr.nextToken());
for(int x=0;x<4;x++){
if (t[x].account.getId().equals(tid)){
k = true;
//transfer code here[...]
break;
}
}
if(!k){
JOptionPane.showMessageDialog(null, "ID not found");
}