我在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);
}
有谁知道我错过了什么
答案 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无法将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++;
}