2015-09-21 166 views
-3

我無法創建循環來爲多陣列添加小時。當我使用方法小時時出現錯誤。我懷疑我的for循環沒有捕獲輸入。多陣列輸入

import javax.swing.JOptionPane; 

public class Gain 
{ 
    // Defining array names. 
    String[] name = {"A", 「B」, 「C」, 「D」, 「E」, 「F」, 「G」, 「H」, 「I」, 「L」}; 
    int[][] hours = new int[10][3]; 

    public final int Hours() 
    { 
    boolean canceled = false; 
    for (int index = 0; index < name.length; index++) { 
     JOptionPane.shoeMessageDialog(「Please enter " + name[index] + 「’s hours」); 
      for (int x = 0; x <= hours.length; x++) 
       for (int y = 0; y <= hours[x].length; y++) 
     Integer value = promptForInt(artist[index] + 「’s first hour: 」); 
     if (value != null) { 
      while (value < 0) 
     { 
      JOptionPane.showMessageDialog(null, "Please positive figures." + "\nPlease try again."); 
      value = promptForInt(name[index] + 「’s first hour: 」); 
     } 
      pay[x][y] = value; 
     } else { 
      canceled = true; 
      break; 
     } 
    } 

    public static void main(String[] args) // Main program 
    { 
     for (int x = 0; x <= name.length; x++) 
      for (int y = 0; y <= hours.length; y++) 
       System.out.println(x, y); 
    } 
+0

我懷疑你的包圍造成了一些問題。據我所知,你沒有關閉你的第一個循環,我認爲你需要在第二個和第三個循環中使用括號。 – helencrump

+0

修復你的indentantion。使用調試器 –

回答

0

嘗試增加括號像這樣:

import javax.swing.JOptionPane; 

public class Gain 
{ 
    // Defining array names. 
    String[] name = {"A", 「B」, 「C」, 「D」, 「E」, 「F」, 「G」, 「H」, 「I」, 「L」}; 
    int[][] hours = new int[10][3]; 

    public final int Hours() 
    { 
     boolean canceled = false; 
     for (int index = 0; index < name.length; index++) 
     { 
      JOptionPane.shoeMessageDialog("Please enter " + name[index] + "’s hours"); 
      for (int x = 0; x <= hours.length; x++) 
      { 
       for (int y = 0; y <= hours[x].length; y++) 
       { 
        Integer value = promptForInt(artist[index] + 「’s first hour: 」); 
        if (value != null) 
        { 
         while (value < 0) 
         { 
          JOptionPane.showMessageDialog(null, "Please positive figures." + "\nPlease try again."); 
          value = promptForInt(name[index] + 「’s first hour: 」); 
         } 
         pay[x][y] = value; 
        } 
        else 
        { 
         canceled = true; 
         break; 
        } 
       } 
      } 

     } 
    } 

    public static void main(String[] args) // Main program 
    { 
     for (int x = 0; x <= name.length; x++) 
      for (int y = 0; y <= hours.length; y++) 
       System.out.println(x, y); 
    } 

雖然它的罰款,以避免在for循環中括號當你只有一行代碼之後(就像你main方法),您需要當你有一個完整的塊時使用它們,就像在你的Hours()方法中那樣。就個人而言,我喜歡隨時使用括號,因爲它使代碼更具可讀性,但這只是我自己。 :)

+1

謝謝!我應該遵守良好的編碼習慣。 :-) – rlee