在java上使用for时更改循环条件

在java上使用for时更改循环条件,java,Java,我是java新手,我有while条件,它工作得很好,但我需要使用for循环:这个while条件用于循环 String command = ""; while ((command = br.readLine())!=null && !command.isEmpty()) { int b=0; thisObj.perintah(b,command); } 我已经试着写了,我想类似这样,但它不工作 for (int b=0;b<command;b++) {

我是java新手,我有while条件,它工作得很好,但我需要使用for循环:这个while条件用于循环

String command = "";
while ((command = br.readLine())!=null && !command.isEmpty()) {
  int b=0; 
  thisObj.perintah(b,command);
}
我已经试着写了,我想类似这样,但它不工作

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

for(int b=0;b不清楚
b
应该取什么值。不过,无论哪种方法,您都必须将字符串转换为整数

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

while循环表示为for循环:

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

使用变量名
命令
会使
行相当长,因此下面是相同的代码,变量名较短,因此更清楚发生了什么:

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

如果没有帮助,Java无法将
int
String
进行比较。您需要将命令转换为数字。请尝试
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++;
}


你认为整数和字符串之间的不等式比较应该做什么?你是在比较字符串命令和int b。这不是一个好主意。在你的第一个代码片段中
b
的意义是什么?你问的问题真的不清楚。
command
似乎不是一个数字(给定)我们无法猜测
b
的用途以及它应该取什么值。在
for
循环中,符号
命令在您进入循环体之前不会定义。您不能在
for
语句本身中使用它。即使可以,我相信
也需要增加
b
要编译此文件吗?是的,我需要增量b与我的method@poundPound但是
b
command
之间的关系是什么?这就是你想要的吗?我使用b作为其他方法,这样方法将递增,直到命令被执行为止null@poundPound好的,我不确定我是否得到了它,但请看我的最后一次编辑。这是一个
对于每个
循环。这肯定更合适,但也许你也可以为
循环包含一个经典的
?涵盖所有的基础!@Chris这不是foreach:这里没有iterable对象,也没有foreach语法的
操作符。这是
循环的标准
。梅林的胡子。就是这样。我收回我的声明并奖励你一个可爱的解决方案a+1。我需要一个增量,因为我使用b作为其他方法,你的代码只为我的其他方法提供1个输出,但是你的while循环没有增量
b
,这应该是for循环的原型。哦,我已经增加了b…为什么要检查这行是否为空t empty?一个条件就可以了。@疑难解答:我保留了尽可能多的原始代码。@疑难解答:查看该行如何为空而不为空?@疑难解答仅包含
\n
的行将返回一个空
字符串
对象,该对象不为