2013-10-16 44 views
2

我试图存储在for循环结构上输入的值,以后我将需要使用它,但只能在for循环结构中识别它。我需要存储的值要认识到程序的其余部分,但不知何故,我得到一个错误“无法找到符号”Java数组存储值

public class TryArray { 
    public static void main(String args[]) throws IOException { 
    BufferedReader inpt = new BufferedReader(new InputStreamReader(System. in)); 

    int[] arrayCrit = new int[5]; 
    String[] crits = new String[5]; 

    for (int i = 0; i < crits.length; i++) { 
     System.out.print("Criteria: "); 
     crits[i] = inpt.readLine(); 
     for (int j = 0; j < arrayCrit.length; j++) { 
     System.out.print("Percentage: "); 
     arrayCrit[j] = Integer.parseInt(inpt.readLine()); 
     } 
    } 

    System.out.println(crits[i] + arrayCrit[j]) 
    } 
} 

编辑:是的,我可以打印输出移动for循环中,但在显示所有值之前,我需要先输入所有值。请我需要帮助。

+0

我赞赏所有帮助家伙,谢谢。 – user2768501

+0

不客气。 –

回答

2

希望这会有所帮助。

public static void main(String args[]) throws IOException { 
    BufferedReader inpt = new BufferedReader(new InputStreamReader(
      System.in)); 

    int[] arrayCrit = new int[5]; 
    String[] crits = new String[5]; 

    for (int i = 0; i < crits.length; i++) { 
     System.out.print("Enter Criteria: "); 
     crits[i] = inpt.readLine(); 
     System.out.print("Enter Percentage: "); 
     arrayCrit[i] = Integer.parseInt(inpt.readLine()); 
    } 
    // Printing the values 
    for (int i = 0; i < crits.length; i++) { 
     System.out.println("Criteria :" + crits[i] + " Percentage: " 
       + arrayCrit[i]); 
    } 
} 
+0

这是我需要的,谢谢。 – user2768501

+0

@ user2768501很高兴听到它.. – Prabhakaran

1

显示所有你必须做出另一个loop阅读,插入

import java.io.*; 

public class TryArray{ 
    public static void main(String args[])throws IOException{ 
    BufferedReader inpt = new BufferedReader (new InputStreamReader(System.in)); 

    int [] arrayCrit = new int [5]; 
    String [] crits = new String [5]; 

    for(int i=0; i<crits.length; i++){ 
     System.out.print("Criteria: "); 
     crits[i]=inpt.readLine(); 
    for (int j=0; j<arrayCrit.length; j++){ 
     System.out.print("Percentage: "); 
     arrayCrit[j]=Integer.parseInt(inpt.readLine()); 
    } 
    } 
    for(int i=0; i<crits.length; i++){ 
     for (int j=0; j<arrayCrit.length; j++){ 

      System.out.println(crits[i] + arrayCrit[j]) 
      } 
     } 
    } 
} 

或我误解你的问题后?

+0

为什么你使用两个for循环打印。 – Prabhakaran

+0

,因为在输入中也有两个循环。可能应该在外面,成为一个5x5,但只是保持一致。 –

-1

您必须在循环外定义i和j。否则,你只能在循环内使用它们:

int i; 
int j; 

int[] arrayCrit = new int[5]; 
String[] crits = new String[5]; 

for (i = 0; i < crits.length; i++) { 
    System.out.print("Criteria: "); 
    crits[i] = inpt.readLine(); 
    for (j = 0; j < arrayCrit.length; j++) { 
    System.out.print("Percentage: "); 
    arrayCrit[j] = Integer.parseInt(inpt.readLine()); 
    } 
} 
+0

我真的不认为OP想要这个。 – SudoRahul

+1

如果在循环中定义它们,你可以在循环外使用i和j吗?它不会给编译错误?至少我得到它! – luanjot

+0

不,你不能使用它们,但这仍然不是问题的正确答案。最好提出在循环内部打印值(对每个元素),或者打印整个数组(如果OP想要的话)。你的“修复”会做的是打印两个阵列中的最后一个元素。 – Matthias

0

您当前正在做的操作将会覆盖为下一个输入输入的值。我相信你想有一个2d阵列arrayCrit来存储每个标准的所有百分比。只有在这种情况下,才有意义有2 for循环。

String[] crits = new String[5]; 
int[][] arrayCrit = new int[5][5]; // The 2d array 

for (int i = 0; i < crits.length; i++) { 
    System.out.print("Criteria: "); 
    crits[i] = inpt.readLine(); 
    for (int j = 0; j < arrayCrit[i].length; j++) { 
     System.out.print("Percentage: "); 
     arrayCrit[i][j] = Integer.parseInt(inpt.readLine()); // Inputting different set of percentage for each criteria 
    } 
} 

// Displaying each criteria with its own percentages 
for (int i = 0; i < crits.length; i++) { 
    System.out.print("For Criteria: " + crits[i]+" ---> "); 
    for (int j = 0; j < arrayCrit[i].length; j++) { 
     System.out.print("Percentage " + j + " : " + arrayCrit[i][j] + "\t"); 
    } 
    System.out.println(); 
} 
0

1)for循环

for(int i=0; i<crits.length; i++){ //this will execute 5 times 
    System.out.print("Criteria: "); 
    crits[i]=inpt.readLine(); 
for (int j=0; j<arrayCrit.length; j++){ //this will execute 5 times for each i = 25 times 
    System.out.print("Percentage: "); 
    arrayCrit[j]=Integer.parseInt(inpt.readLine()); 
} 
} 

删除嵌套for循环添加

import java.io.*; 

2)正在使用嵌套作为

for(int i=0; i<crits.length; i++){ //this will execute 5 times 
    System.out.print("Criteria: "); 
    crits[i]=inpt.readLine(); 
} 
for (int j=0; j<arrayCrit.length; j++){ //this will execute 5 times 
    System.out.print("Percentage: "); 
    arrayCrit[j]=Integer.parseInt(inpt.readLine()); 
} 

3)can not find symbol
你想在同一时间打印的标准和比例,因为你已经初始化大小5两个数组,然后就可以直接打印

for (int i = 0; i < 5; i++) {  
    System.out.println(crits[i] + arrayCrit[i]); 
} 

4)可以使用下面的程序,它增强你的程序的版本

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 


public class TestArray { 
public static void main(String args[]) throws IOException { 
    BufferedReader 
    inpt = new BufferedReader(new InputStreamReader(System. in)); 

    System.out.println("How many records?");//ask for how many records 
    int n = Integer.parseInt(inpt.readLine());// store in n 

    int[] arrayCrit = new int[n];//create array with size n 
    String[] crits = new String[n]; 

     //**as you mentioned in edit you want to take all the input before printing**  
    for (int i = 0; i < n; i++) 
    { 
     System.out.print("Criteria: "); 
     crits[i] = inpt.readLine(); 

     System.out.print("Percentage: "); 
     arrayCrit[i] = Integer.parseInt(inpt.readLine());  
    } 
     //print both arrays 
    System.out.println("Criteria \t Percentage"); 
    for (int i = 0; i < n; i++) 
    { 
     System.out.println(crits[i] + "\t"+arrayCrit[i]); 
    }  
    } 
} 

有用的链接