gpt4 book ai didi

java - 在 while 表达式中初始化变量 - 而不是语句

转载 作者:行者123 更新时间:2023-11-30 04:54:52 25 4
gpt4 key购买 nike

在 while 循环的表达式中,是否可以初始化一个变量,然后将其用作表达式的一部分?

代码可能更简单:

while (int a = someMethod(), a<b)

可以添加另一个方法,因此必须遵循:

private boolean whileLoopTest() {
int a = someMethod();
return a<b;
}

public void originalMethod() {
while (whileLoopTest()) {
//...

但这看起来并不那么整洁。

编辑我也不想直接将该方法与我的变量进行比较,因为它是与多个变量进行比较,因此 if 会很长,难以阅读。我想要的一个更好的例子是:

while (int a = SomeClass.someStaticMethod(), -1<a && a<b)

在我的例子中这不是真的,但如果 someStaticMethod() 需要很长时间才能返回,这将是一个同样有效的问题 - 我只想调用它一次。我对 StackOverflow 还很陌生,所以我不确定是否应该给出适用于此的其他情况。

最佳答案

int a;
while((a = someMethod()) < b){
//do something
}

其常见用途是从文件中读取:

BufferedReader fileIn = ...
String line;
while((line = fileIn.readLine()) != null){
//do something
}
fileIn.close();

/编辑
您可以为您的新场景执行此操作:

int a;
while(-1 < (a = SomeClass.staticMethod()) && a < b) {
//do something
}

一旦执行了&&语句的左侧部分,SomeClass.staticMethod()的返回值将存储在a中,它继承了语句的右侧部分。

关于java - 在 while 表达式中初始化变量 - 而不是语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com