用for for java改变循环条件

时间:2013-10-09 15:02:43

标签: java

我在java中的新手,我有条件与while而且它工作得很好但我需要使用循环for:this while while condition for looping

String command = "";
while ((command = br.readLine())!=null && !command.isEmpty()) {
  int b=0; 
  thisObj.perintah(b,command);
}

我已经尝试用for写了,我觉得类似这样,但它不起作用

for (int b=0;b<command;b++)
   {
   String command = br.readLine();
   thisObj.perintah(b,command);
   }

有谁知道我错过了什么

3 个答案:

答案 0 :(得分:1)

while循环表示为for循环:

int b = 0;
for (String command = br.readLine(); command !=null && !command.isEmpty(); command = br.readLine()) {
  thisObj.perintah(b++, command);
}

使用变量名command会使for行相当长,所以这里的代码与变量名称相同,所以更清楚的是:

int b = 0;
for (String s = br.readLine(); s !=null && !s.isEmpty(); s = br.readLine()) {
  thisObj.perintah(b++, s);
}

答案 1 :(得分:0)

目前尚不清楚b应该采取什么价值。无论哪种方式,你都必须将字符串转换为整数。

String command = "";
for(int b  = 0; (command = br.readLine())!=null && !command.isEmpty(); ++b) {
    thisObj.perintah(b,command);
    String command = br.readLine();
}

答案 2 :(得分:0)

如果没有一些帮助,Java无法将intString进行比较。您需要将命令转换为数字。试试Integer.parseInt()

但是你不能在for循环的条件下这样做。试试这个:

int b = 0;
String command = "";
while ((command = br.readLine())!=null && !command.isEmpty()) {
  int commandAsInt = Integer.parseInt(command);
  if(b >= commandAsInt) break; // exit the loop

  thisObj.perintah(b,command);
  b++;
}