Java的数组问题

时间:2014-06-26 15:46:16

标签: java arrays

我在编程方面遇到困难,我是新手,因此我将发送整个程序到目前为止,我只需要案例'2'的帮助!它说无法找到符号变量数组。

    import java.util.Scanner ;
    public class jakegrimson20062582 {

    public static void main(String[] args) {
                // Local variable
                int option;
                String squareFootage;
                int noBed;

                Scanner input = new Scanner( System.in );
                Scanner user_input = new Scanner( System.in );


            // Display menu graphics
            System.out.println(" ");
            System.out.println("|  *****Rental Menu*******   |");
            System.out.println("|        1. Enter rental property Details     ");
            System.out.println("|        2. Enter monthly rent ( 12 Months )       ");
            System.out.println("|        3. Display Annual Rent");
            System.out.println("|        4. Display rental report       ");
            System.out.println("|        5. Display Monthly rents falling below a                certain threshold       ");
            System.out.println(" ");
            System.out.println(" Please Select an option: ");
            option = input.nextInt();

    // Switch construct
    switch (option) {
    case 1:
            System.out.println("Enter Rental Details: ");
            System.out.println("Property Code:            ");
            String propertyCode = user_input.next();
            System.out.println("Property Type:            ");
            String propertyType = user_input.next();
            System.out.println("Square Footage:           ");
            squareFootage = user_input.next();
            System.out.println("Number Of bedrooms        ");
            noBed = input.nextInt();
            break;


      case 2:
{
           Scanner keyboardScanner = new Scanner(System.in);
           int[] array;
           array = new int[12];



           // creates for loop 
           for (int i=0; i<12; i++)
          {
           System.out.println("Enter Rental for month");
           array[i] = keyboardScanner.nextInt();
          }

          for (int i=0; i<array.length; i++) 
        {
        System.out.println(array[i]);
        }

}



      System.out.println("");
     break;

     case 3:
      System.out.println("Exit selected");

      break;
    default:
      System.out.println("Invalid selection");
      break; 

  }
}
}

我需要帮助才能完成此代码,不仅仅是这个问题所有帮助完成的代码将非常受欢迎,因为关于主题我有阵列的一般问题,我可能需要一个这个代码的字符串版本而不是INT,因为放入的数字具有小数点。谢谢!

2 个答案:

答案 0 :(得分:2)

将代码缩进为人类可读的内容:

case 2:
{
    Scanner keyboardScanner = new Scanner(System.in);
    int[] array;
    array = new int[12];

    // creates for loop 
    for (int i=0; i<12; i++) {
        System.out.println("Enter Rental for month");
        array[i] = keyboardScanner.nextInt();
    }
}

// prints i in the for loop

for (int i=0; i<array.length; i++) {
    System.out.println(array[i]);
}

这使得错误更加明显。您在case 2块中使用大括号{}创建了代码块,并在该块的内声明了array变量。这意味着变量仅限于该块的范围。然后,您尝试访问该块之外的变量,该变量不再存在。

for阻止<{1}}阻止<{1}}循环 或者也许应该完全省略该块的花括号,因为{}不需要它们?

答案 1 :(得分:0)

使用正确的格式,以便查看案例2的结束位置。数组变量仅存在于案例2中,并且您尝试在该范围之外使用它。