Java 错误的逻辑

Java 错误的逻辑,java,arrays,return,logic,Java,Arrays,Return,Logic,所以这个方法的重点是得到一系列高于100的温度。这有什么问题?当我在toString中返回这个时,它说blazing[]不存在 public int[] above100Degrees() { int[] blazing = new int[temps.length]; for( int i = 0; i < temps.length; i++ ) { if( temps[i] > 100 ) {

所以这个方法的重点是得到一系列高于100的温度。这有什么问题?当我在toString中返回这个时,它说blazing[]不存在

public int[] above100Degrees()
   {
      int[] blazing = new int[temps.length];
      for( int i = 0; i < temps.length; i++ )
      {
         if( temps[i] > 100 )
         {
            blazing[i] = temps[i];
         }
      }
      return blazing;
   }
public int[]高于100度()
{
int[]blazing=新int[temps.length];
对于(int i=0;i100)
{
炽热的,炽热的;
}
}
回燃;
}
toString方法:

 public String toString()
    {
      String returnString = "The temperature forecast of week " + WEEK + " is logged in as: ";
      for( int i = 0; i < temps.length; i++ )
      {
          returnString += "\t" + temps[i] + "\t";
      }
      returnString += "\n" + "The number of temperatures below freezing is " + getUnderFreeze() + "." + "\n" + 
                             "The largest difference this week was a net change of " + NetChange() + "."; 
      for( int i = 0; i < blazing.length; i++ )
      {
         returnString += "The temperature above 100 degrees is " + above100Degrees() + "." + "\n" + "\t" + blazing[i] + "\t";
      }
      return returnString;
    }
公共字符串toString()
{
String returnString=“本周的温度预测”+本周+”登录为:”;
对于(int i=0;i
输出

Forecast.java:122: error: cannot find symbol
      for( int i = 0; i < blazing.length; i++ )
                          ^
  symbol:   variable blazing
  location: class Forecast
Forecast.java:124: error: cannot find symbol
         returnString += "The temperature above 100 degrees is " + above100Degrees() + "." + "\n" + "\t" + blazing[i] + "\t";
                                                                                                           ^
  symbol:   variable blazing
  location: class Forecast
2 errors
Forecast.java:122:错误:找不到符号
for(int i=0;i
该数组通过
高于100度的方法返回。它不会在调用它的范围内建立变量名
blazing
。事实上,您可以将返回的数组分配给一个名为不同的变量

试一试

int[]reallyHot=100度以上();
//然后检查真的很热。。。
for(int i=0;i
确保使用数组访问语法访问特定元素。

更改:

for( int i = 0; i < blazing.length; i++ )
{
    returnString += "The temperature above 100 degrees is " + above100Degrees() + "." + "\n" + "\t" + blazing[i] + "\t";
}
for(int i=0;i
致:

int[]blazing=100度以上();
for(int i=0;i
您的Upper100Degrees()函数返回数组blazing,但您不在toString()方法中调用该函数。就toString()而言,blazing不存在


从toString()中调用100度以上()并将结果数组保存到变量中。然后,您将能够迭代(newVariable).length而不是blazing.length。

数组“blazing”没有在“toString”方法中声明,并且从“perver100degrees”方法返回的数组也不会保存在任何位置。好的,那么如何使用“blazing”的元素,我想显示它们看起来您的变量
blazing
对您的toString()方法不可用。从您上面发布的代码中,
blazing
似乎只属于
高于100度的方法
。您可以将
blazing
设置为类级变量,以便在其他地方可以看到它。我假设您对编程(或至少是Java)相当陌生。我认为使用这样的IDE会使您受益匪浅。它将在许多其他好处中为您突出这些问题。您不能使用
+
将数组放入字符串中。请看。对于这个十六进制代码,我该怎么办?它不显示数组的元素。当您向Sysout输出“toString”方法的结果时,它会显示什么?为什么我必须将数组设置为等于该方法?因为“over100 degrees()”方法中的数组“blazing”不存在于该方法之外。要使用它,必须将其分配给另一个变量(在我的示例中,“toString”方法中的变量“int[]blazing”;在他的示例中,Targetman将其称为“reallyHot”)。如果你不分配它,它就丢失了。
for( int i = 0; i < blazing.length; i++ )
{
    returnString += "The temperature above 100 degrees is " + above100Degrees() + "." + "\n" + "\t" + blazing[i] + "\t";
}
int[] blazing = above100Degrees();
for( int i = 0; i < blazing.length; i++ )
{
    returnString += "The temperature above 100 degrees is " + blazing[i] + "."; // personalise format
}