内部的Java变量" if"未识别

时间:2017-01-04 07:54:06

标签: java if-statement for-loop

我已经为我的课程创建了一个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之前定义变量之前,我读了一些像这样的话题,但我不能这样做,因为我需要先检查一下这个值。提前谢谢。

2 个答案:

答案 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");
}