2012-07-24 70 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); 
    } 
}