首页 > 解决方案 > 如何在我的代码中添加一个称为类别的新数组并将其与已保存到数组的文本文件中的代码一起打印出来

问题描述

现在我想在我的代码中添加一个名为“category”的新数组。我应该添加一个数组,并可以让它与我的其他代码一起打印出来。我已经为 2014 年的类别尝试了 if 语句。它告诉我没有语法错误,但没有打印任何内容。我还想格式化我的代码,使它们都在列中并且看起来很有条理。我尝试了几种方法,但没有任何改变。我现在放的没有格式,这并不重要,但是如果有人可以提供帮助,非常感谢。

enter code here
/**
 * Write a program to calculate the average category, pressure, and wind 
speed of Atlantic hurricanes that have occurred between a given year 
range. Also, tally the number of storms in each category according to the 
Saffir-Simpson scale.
 *
 * Steven Liu
 * 10/25/2019
 */
import java.util.Scanner;      
import java.io.IOException;
import java.io.PrintWriter;
import java.io.File;
import java.text.DecimalFormat;
public class HurricaneSelector
{
    public static void main(String[] args) throws IOException
    {
        Scanner in = new Scanner (System.in);
        File fileName = new File ("hurricanedata.txt");
        Scanner inFile = new Scanner(fileName);
        int totalYear;

        System.out.println("What year do you want from 1995 - 2015(e.g. 
2004 2005): ");
        int startYear = in.nextInt();
        int endYear = in.nextInt();

        totalYear = endYear - startYear;
        int Arrays;
        int counter = 0;

        while (inFile.hasNextLine()) 
        {
            inFile.nextLine();
            counter++;
        }
        inFile.close ();

        int finalSpeed = 0;
        int [] year = new int[counter];
        String [] month = new String[counter];
        String [] name = new String[counter];
        int [] pressure = new int[counter];
        int [] windSpeed = new int[counter];
        int index = 0; 
        int [] category = new int[]{1, 2, 3, 4, 5};


        inFile = new Scanner(fileName);
        while (inFile.hasNext())
        {
            year[index] = inFile.nextInt();
            month[index] = inFile.next();
            pressure[index] = inFile.nextInt();
            windSpeed[index] = inFile.nextInt();
            name[index] = inFile.next();
            finalSpeed += windSpeed[index];
            index++;
    }
    double windSpeedMPH;
    double winds;

    if (startYear == 1995)
    {
        for (int n = 0; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 1996)
    {
        for (int n = 11; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 1997)
    {
        for (int n = 20; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 1998)
    {
        for (int n = 23; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 1999)
    {
        for (int n = 33; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2000)
    {
        for (int n = 41; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2001)
    {
        for (int n = 49; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2002)
    {
        for (int n = 58; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2003)
    {
        for (int n = 62; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2004)
    {
        for (int n = 69; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2005)
    {
        for (int n = 78; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2006)
    {
        for (int n = 93; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2007)
    {
        for (int n = 98; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2008)
    {
        for (int n = 104; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2009)
    {
        for (int n = 112; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2010)
    {
        for (int n = 115; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2011)
    {
        for (int n = 127; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2012)
    {
        for (int n = 134; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2013)
    {
        for (int n = 144; year[n] < endYear + 1; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }
    }
    else if (startYear == 2014)
    {
        for (int n = 146; year[n] <= endYear; n++)
        {
            windSpeedMPH = windSpeed[n] * 1.15078;
            if(windSpeedMPH < 96)
            {
                category[n] = category [0];
            }
            else if (windSpeedMPH< 111)
            {
                category[n] = category [1];
            }
            else if (windSpeedMPH< 130)
            {
                category[n] = category [2];
            }
            else if (windSpeedMPH < 157)
            {
                category[n] = category [3];
            }
            else if (windSpeedMPH > 156)
            {
                category[n] = category [4];
            }
            System.out.printf("%d     %-10s%8d%17d%17.2f%n", year[n], name[n], category[0], pressure[n], windSpeed[n] * 1.15078);
        }
    }
    else if (startYear == 2015)
    {
        for (int n = 52; year[n] <= endYear; n++)
        {
            System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
            windSpeedMPH = windSpeed[n] * 1.15078;
        }

    }  
}
}

预期的输出应该类似于(中间应该是类别,我为示例输出输入了随机数。类别的实际数字显示在我的代码中,数组在开头,if 语句在 2014 年部分):

2011     Irene     3   942     120.83189999999999
2011     Katia     4   942     138.09359999999998
2011     Maria     1   983     80.5546
2011     Nate      1   994     74.80069999999999
2011     Ophelia   4   940     138.09359999999998
2011     Philippe  3   976     92.0624
2011     Rina      2   966     115.07799999999999
2012     Chris     2   974     86.3085
2012     Ernesto   1   973     97.8163
2012     Gordon    4   965     109.32409999999999
2012     Isaac     2   965     80.5546
2012     Kirk      4   970     103.57019999999999
2012     Leslie    4   968     80.5546
2012     Michael   4   964     115.07799999999999
2012     Nadine    4   978     92.0624
2012     Rafael    2   969     92.0624
2012     Sandy     4   940     115.07799999999999
2013     Humberto  3   979     92.0624
2013     Ingrid    5   983     86.3085
2014     Arthur    3   973     97.8163
2014     Bertha    2   998     80.5546
2014     Cristobal 2   965     86.3085
2014     Edouard   4   955     120.83189999999999
2014     Fay       3   983     80.5546
2014     Gonzalo   4   940     143.8475

标签: javaarraysif-statement

解决方案


int n=0;
while(year[n]<=endYear)
{
 if(year[n]>=startYear)
{
        System.out.println(year[n] + "     " + name[n] + "     " + pressure[n] + "     " + windSpeed[n] * 1.15078);
        windSpeedMPH = windSpeed[n] * 1.15078;
}
n++;
}

不太确定您要的是什么,但是您应该将 if else 嵌套语句更改为循环


推荐阅读