【问题标题】:changing while loops to for loops将 while 循环更改为 for 循环
【发布时间】:2017-09-26 22:31:29
【问题描述】:

我正在尝试将此 while 循环更改为 for 循环,但我并没有走得太远。我是编程新手,如果这是一项微不足道的任务,我深表歉意。

while (read < fileBytes.length
       && (numRead = diStream.read(fileBytes, read, fileBytes.length - read)) >= 0)
{
    read = read + numRead;
}

【问题讨论】:

  • 为什么要改成for?
  • 这有点冗长,想知道将它放在 for 循环中是否会提高可读性。也只是普遍感兴趣。
  • read = read + numRead 可以改为read += numRead

标签: java for-loop while-loop


【解决方案1】:

我是一名 C# 程序员,但我会编写与您需要的代码非常相似的代码。

for (int read = 0; read < fileBytes.length;) {
    numRead = diStream.read(fileBytes, read, fileBytes.length - read);
    if (numRead >= 0) {
        read = read + numRead;
    }
}

【讨论】:

  • 这不是有效的 Java 代码。 Java 中没有var。也许你的意思是int read
【解决方案2】:
for(numRead = diStream.read(fileBytes, read, fileBytes.length - read);
read < fileBytes.length && numRead >= 0;
numRead = diStream.read(fileBytes, read, fileBytes.length - read)) {
      read = read + numRead;
}

【讨论】:

    【解决方案3】:

    尝试使用这个:

    start_value = //....
    for (read = start_value; read < fileBytes.length 
            && (numRead = diStream.read(fileBytes, read, fileBytes.length - read)) >= 0; 
            read += numRead) {
    
        //Your actions
    
    }
    

    【讨论】:

      猜你喜欢
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 2020-09-17
      • 1970-01-01
      • 2022-01-19
      • 2014-04-05
      • 2021-11-23
      相关资源
      最近更新 更多