2014-09-30 49 views
0

有沒有辦法只使用一個循環與多個整數?目前我只寫了int num0的代碼。但有沒有辦法讓同一代碼中的num1,num2,num3的其餘部分?我之所以要求這樣做的原因是因爲我不像程序員那樣經驗豐富,我想知道你們是否知道是否有解決方案。 (請原諒我的語法錯誤)如何爲多個整數創建1個for循環?

public void exercise1c() { 
     int num0, num1, num2, num3; 

     num0 = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 
     num1 = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 
     num2 = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 
     num3 = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 

     for (int i = 0; i <= num0; i++) { 
     if (num0 <= 0) { 
      System.out.println("Number "+ num0 + " is negative."); 
      break; 
     } 
     } 
     if (num0 >= 0) { 
     System.out.println(num0 + " is a integer."); 
     } 
     if (num0 == 0){ 
     System.out.println(num0 + " is zero."); 
     } 
    } 
+0

什麼是purpo這個循環的一部分?這個電流回路什麼都不做。有沒有省略代碼? – Tom 2014-09-30 11:14:25

+0

你用一個多重整數循環表示什麼意思?有些aclaration可能是不錯的......你的意思是讓這樣的: 1 1 1 1, 1 1 1 2, ... 1 1 2 1, ... 否否否否??? – 2014-09-30 11:15:13

+0

我認爲你需要在if循環中加入'if(num0> = 0)'和'if(num0 == 0)'。 – arin1405 2014-09-30 11:15:58

回答

2

num0, num1, num2, num3Listarray,然後你就可以使用單for

如:與int[]

int[] num = new int[4]; 
num[0] = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 
num[1] = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 
num[2] = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 
num[3] = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 

for (int i = 0; i < num.length; i++) { 
    if (num[i] < 0) { 
     System.out.println("Number " + num[i] + " is negative."); 
     break; 
    } 
    if (num[i] > 0) { 
     System.out.println(num[i] + " is a integer."); 
    } 
    if (num[i] == 0) { 
     System.out.println(num[i] + " is zero."); 
    } 
} 

如何使用List

如這樣做:

List<Integer> numList = new ArrayList<>(); 
    numList.add(Integer.parseInt(JOptionPane.showInputDialog("Write a number."))); 
    numList.add(Integer.parseInt(JOptionPane.showInputDialog("Write a number."))); 
    numList.add(Integer.parseInt(JOptionPane.showInputDialog("Write a number."))); 
    numList.add(Integer.parseInt(JOptionPane.showInputDialog("Write a number."))); 

    for (Integer i :numList) { 
     if (i < 0) { 
      System.out.println("Number " + i + " is negative."); 
      break; 
     } 
     if (i > 0) { 
      System.out.println(i + " is a integer."); 
     } 
     if (i == 0) { 
      System.out.println(i + " is zero."); 
     } 
    } 
+0

'Array'與數組(也不是'List')不同。在java中,數組不是'Object'。你的意思是'Array'類,但是你用int數組編寫代碼,你會讓他犯的錯誤比現在多。 – 2014-09-30 11:33:10

1

使用的array

int[] num = new int[4]; 

num[0] = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 
num[1] = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 
num[2] = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 
num[3] = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 

for(int i = 0; i<num.length; i++) { 
    int currentInteger = num[i]; 

    //other code here... 
} 
1

首先,這些對象NUM#不是數組,但原語,如果它們是整數。 如果三個陣列長度相同,答案是肯定的!

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

但如果你在一個數組,尋找迭代的快捷方式

for (int i : numArray) 
    System.out.println("The number is: " + i); 
0

,你可以這樣做:

int num[]=new int[4]; 

    for(int i=0;i<4;i++){ 
     num[i] = Integer.parseInt(JOptionPane.showInputDialog("Write a number.")); 
    } 

    // Do something 
0

也許你的意思是這樣的:

static final int N = 4; // <-- the number of integers you have. 
public void exercise1c() { 
    int num[] = new int [4]; 
    for (i = 0; i < N; i++) { 
     num[i] = Integer.ParseInt(JOptionPane.showInputDialog("Write a number.")); 
     // you need here some means to get the number into num[i]. 
    } /* for */ 
    for (i = 0; i < N; i++) { 
     if (num[i] < 0) { // < 0 for negative number. 0 is not negative. 
      System.out.println("Number " + num[i] + " is negative."); 
      // break; // don't know what you pretend here. 
     } else if (num[i] > 0) { 
      System.out.println("Number " + num[i] + " is positive."); 
     } else { 
      System.out.println("Number " + num[i] + " is zero."); 
     } /* if */ 
    } /* for */ 
} /* exercise1c() */ 
+0

你的第一個循環應該發生什麼?您不會將輸入的號碼存儲到任何變量中。 – Tom 2014-09-30 11:29:25

+0

我知道...查看評論。有了他似乎擁有的Java級別,在嘗試使用對話框類執行操作之前,最好先進行控制檯輸入。 – 2014-09-30 11:35:15

+0

他已經正確使用了該對話框,但將用戶輸入寫入了一個「int」變量而不是數組。你能告訴我什麼'JOptionPane.showInputDialog(「寫一個數字。」)。getText()'應該做什麼? 'String'中沒有'getText()'方法。 – Tom 2014-09-30 12:00:04