2012-07-24 71 views
0
println("This program allows you to enter your exam results!"); 
    int n0 = readInt("How many exam results do you have? "); 
    for (int n=1; n<=n0; n++) { 
     String r0 = "r"+n; 
     int result = readInt("Result "+n+": "); 
     println(r0); 
    } 

我是java新手,想知道是否可以將'String r0'變量的內容設置爲'int result'變量的名稱(而不是結果)。Java - 將變量內容設置爲新變量名稱

我希望這樣做,因爲我的程序將有多個'int結果',我將需要稍後使用每一個用於算術目的。

+1

不,在像Java這樣的編譯語言中你不能這樣做。在運行時沒有局部變量名稱,只是堆棧位置。 – 2012-07-24 15:58:29

回答

0

首先不申報r0 as String打算用它作爲integer,但它聲明爲int,雅offcourse你可以轉換 字符串中使用Integer.parseInt()整數

如:

String r0 = "10"; 
int r = Integer.parseInt(r0); 

2.我會建議你用集合框架在Java中的多張數據存儲,因爲它提供了很大的的flexibilty。使用ArrayList<Integer>

如:

ArrayList<Integer> arr = new ArrayList<Integer>(); 

    for (int n=1; n<=10; n++) { 

     arr.add(n); 
} 
1

即使你可以,我不認爲這將是一個非常好的主意!讓他們稍後回顧他們將是一場噩夢。

在你的情況下,我只是建議使用一組int來代替你的結果。

3

我認爲你真正需要做的是收集或數組的結果。任何時候你覺得你需要這樣的東西:

int r0 = ...; 
int r1 = ...; 
int r2 = ...; 

等等,那麼它是你在尋找某種收集的良好跡象。

因此,在上面的例子中,您將構建一個大小的大小的數組,然後依次填充數組中的每個元素。

這是Java array tutorial。這也是值得看看Java collection tutorial,如果只是爲了比較/對比。

+0

我將如何更改每個'for'循環的數組編號? – 2012-07-24 16:05:51

0

下面我有一個程序,將工作。我會複製代碼並嘗試自己重寫,以確保完全理解正在發生的事情。

import java.util.Scanner; 
public class Arrays 
{ 
    public static void main(String[] args) 
    { 
     // Initialize Variables 
     int examCount = 0; 
     double examSum = 0; 
     Scanner input = new Scanner(System.in); 


     // Prompt The user For Number Of Exams And Recieve Value 
     System.out.print("Number Of Exams? "); 
     examCount = input.nextInt(); 


     // Create An Array That Is The Length Of The Number Of Exams And Holds Double Values 
     double[] exams = new double[examCount]; 


     // Read In All Exam Scores. A For Loop Is Used Because You Know How Many Scores There Are 
     for (int i = 0; i < examCount; i++) 
     { 
      System.out.print("Exam Score: "); 
      exams[i] = input.nextDouble(); 
     } 


     // Print Out All Of The Scores 
     for (int i = 0; i < examCount; i++) 
      System.out.println("Exam #" + (i+1) + "\t" + exams[i]); 


     // Sum All Of The Exam Scores 
     for (int i = 0; i < examCount; i++) 
      examSum += exams[i]; 


     // Print Out An Average Of All Of The Scores 
     System.out.println("Exam Average: " + examSum/examCount); 
    } 
}