java - 是否可以在条件内声明变量?

标签 java

这就是我执行 while 循环的方式:

boolean more = true;
while (more)
{
  // do something
  if (someTest()) 
  {
    more = false;
  }
}

这很标准。我很想知道是否有一种方法可以在 Java 中执行类似于以下代码的操作:(我想我已经在 C 中看到过类似的操作)

// The code below doesn't compile (obviously)
while (boolean more = true)
{
  // do something
  if (someTest())
  {
    more = false;
  }
}

我之所以问这个,是因为目前我不喜欢定义条件中使用的变量的方式(在本例中为:“更多”)循环范围之外,即使尽管它只在循环内部相关。循环结束后将它留在原处是没有意义的。


* * 更新 * *

在参观 Porcaline Chamber of Secrets 之后,我想到了一个主意:

for (boolean more=true; more; more=someTest())
{
  // do something
}

它并不完美;它滥用了 for 循环,我想不出一种方法来至少执行一次循环,但它很接近...有没有办法确保循环执行 1 次以上?

最佳答案

要从字面上回答你的问题,你可以这样做

for(boolean more = true; more; ) {
   more = !someTest();
}

但这与

while(!someTest());

如果它必须至少执行一次你可以做

do {

} while(!someTest());

关于java - 是否可以在条件内声明变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782578/

相关文章:

java - 在idea中设置类路径以运行单元测试

java - 内存 session 复制中的 Tomcat

java - 如何将条形图放置在刻度线之间?

java - 如何在一个数组中使用不同的类对象?

java - 凤凰错误 : hbase table undefined, 即使它存在

java - 查找具有不同长度的特征向量的相似性度量

java - 使用 Maven 构建 SOAPUI 失败

java - gwt 应用程序的爬虫花费太多时间

java - 我的 3x3 矩阵程序的逆部分?

java - 为什么 liquibase 将新更改附加到 diffChangelog 的现有内容?