复杂的条件和无法访问的语句



我对Java很陌生,遇到了一些麻烦。我觉得这是一个简单的解决方案。基本上,如果满足两个条件,我希望返回一个语句。下面是我附加的代码。

boolean Windy = false;
if (Windy = true) 
return "It is Windy";
else 
return "Not Windy";
if (temperature < 30);
{return "Too Windy or Cold! Enjoy watching the weather through the window";

在我尝试更改脚本后,会抛出其他错误,声称需要返回语句。

您的代码包含几个错误:

  1. Windy = true中的=应该是===是分配一些东西,==是检查平等。
  2. 由于您的第一个if (Windy = true) return "It is Windy"; else return "Not Windy";将始终返回两者之一,因此它下面的其余代码无法访问,并且永远不会执行。
  3. 即使可以访问,也应删除if (temperature < 30);处的尾随分号。
  4. 方法中的{}块不是必需的。

我认为这就是您在代码中寻找的内容:

boolean windy = false;
if(windy){
return "It is Windy";
} else if(temperature < 30){
return "Too Windy or Cold! Enjoy watching the weather through the window";
} else{
return "Not Windy";
}

当然,将windy设置为false硬编码的 kinda 也会使第一次检查无法到达。但我假设这只是您的示例代码,在您的实际代码中,您将windy检索为类变量或方法参数。

此外,由于windy本身是一个布尔值,因此== true是多余的,只需if(windy)就足够了。

PS:Java 中的变量名是 camelCase 的最佳实践,因此在这种情况下请使用windy而不是Windy。我还在 if
/else-if/else 语句周围添加了括号。它们不是必需的,如果您真的愿意,可以省略它们,但修改代码更容易,以后不会出错。

好的,我检查了你的图像(我通常不做的(,并在你的代码中发现了几个问题。

public static String getWeatherAdvice(int temperature, String description)
{
{ // REMOVE THIS BRACKET
if ( Windy = true) // = signifies an assigning a value, not a comparison. Use ==
return "It is Windy";
else
return "Not Windy";
if ( temperature < 30 ); // Since the above if-else will always return a value, this
// code can not be reached. Put this if before the previous if-else. Also: remove the ; after the if statement, otherwise, it ends the if, and the return statement might be triggered.
{ // don't put this bracket if you have a ; after the if
return "Too windy ... ";
} // don't put this bracket if you have a ; after the if
} // REMOVE THIS BRACKET
}

代码的更正版本(可能是(:

public static String getWeatherAdvice(int temperature, String description)
{
if ( temperature < 30 )
{ 
return "Too windy ... ";
} 
if ( Windy == true) // can also be written as: if ( Windy ) 
return "It is Windy";
else
return "Not Windy";    
}

您可以使用 "&&" = 和 "||" = 或:

if (Windy && temperature < 30) {
return "it's windy and temperature is <30";
} else if (!Windy && temperature > 30) {
return "Not Windy";
}

相关内容

  • 没有找到相关文章

最新更新