用户输入后输出中显示的数组

时间:2014-01-29 15:55:35

标签: java arrays string project

我似乎无法让我的数组出现在输出中,这是我的编码。有问题吗? 我希望我的'Jan'数组出现在我的菜单中,例如:“Jan Expenditure”,但只有“支出出现。现在我在String monthChoice上有语法错误。请帮帮我。谢谢!

import java.util.Scanner;

public class Project {
static String[] itemList = new String[10];
static int[] amountList = new int[10];
static int choice;

public static void main(String[] args) {

    {   Scanner input = new Scanner(System.in);
        System.out.println("***************Expenditure***************");
        System.out.println("1)Enter monthly expenses");
        System.out.println("2)Display detailed expenditure by month");
        System.out.println("3)Quick glance at monthly expenses");
        System.out.println("4)Exit");
        System.out.println("Please select your choice <1-3>:");
        choice = input.nextInt();


        switch (choice) {
        case 1:
            int count = 0;
            String[] monthsArray = { "", "Jan", "Feb", "Mar", "Apr", "May",
                    "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" };
            System.out.println("*******************************************");
            System.out.println("\t\t\t\t");
            System.out.print("Enter month <1 for Jan - 12 for Dec>:");
            int month = input.nextInt();
            for (int i=0; i < monthsArray.length; i++)
            String monthChoice = monthsArray[month - 1];
            System.out.println("-------------------------------------");
            System.out.println(monthChoice + "expenditure (max 10 items)");

2 个答案:

答案 0 :(得分:1)

此:

String monthChoice = monthsArray[month - 1];

应该是:

String monthChoice = monthsArray[month];

因为第一个月是空的。

此外,我不理解这个for循环,因为您甚至不使用i变量,并且您不需要多次重复该操作:

for (int i=0; i < monthsArray.length; i++)

答案 1 :(得分:0)

请注意:用户输入数字1,然后将其分配给month变量,现在month = 1。 for循环中的第一行现在要求monthsArray[month - 1] monthsArray[1-1]变为monthsArray[0]monthsArray的0 th 元素是一个空字符串“”。当你将它打印为monthChoice时,你只得到你的字符串的2 nd 部分,所以看起来你得到了你不想要的结果。