无法识别“if”中的java变量

xpcnnkqh  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(370)

我有一个作业要为我的班级创建一个自动取款机程序。除了这个问题,我几乎什么都做过。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之前定义变量之前,我读了其他一些类似的主题,但是在我的例子中我不能这样做,因为我需要先检查值。提前谢谢。

3yhwsihp

3yhwsihp1#

转移最后一个 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

v64noz0r

v64noz0r2#

您可以这样做:

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

相关问题