0

我对 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";

在我尝试更改脚本后引发了其他错误,声称需要返回语句。

4

3 回答 3

3

您的代码包含几个错误:

  1. =inWindy = true应该是==a 。=是分配一些东西,==是检查是否相等。
  2. 因为你的第一个if (Windy = true) return "It is Windy"; else return "Not Windy";总是返回两者之一,所以它下面的其余代码是无法访问的,永远不会被执行。
  3. if (temperature < 30);即使它可以到达,也应该删除结尾的分号。
  4. 方法中的{}-block 不是必需的。

我认为这是您正在寻找的代码:

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";
}

当然,设置windyfalse硬编码有点使得第一次检查也无法进行。但我认为这只是您的示例代码,在您的实际代码中您检索windyas 类变量或方法参数。

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

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

于 2018-08-31T13:21:00.453 回答
0

您可以使用“&&”= 和“||”来比较标准 = 或:

if (Windy && temperature < 30) {
return "it's windy and temperature is <30";
} else if (!Windy && temperature > 30) {
return "Not Windy";
}
于 2018-08-31T13:25:01.460 回答
0

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

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";    
}
于 2018-08-31T13:18:40.743 回答