繁体   English   中英

Java数组存储值

[英]Java Array Storing Values

我正在尝试存储在for循环结构上输入的值,这些值以后需要使用,但是只能在for循环结构内部识别。 我需要在程序的其余部分识别存储的值,但是不知何故我遇到了错误“找不到符号”

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循环内移动打印输出,但是在显示所有输出之前,我需要先输入所有值。 请我帮忙。

显示所有插入后需要做的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])
            }
        }
    }
}

还是我误解了你的问题?

希望这会有所帮助。

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]);
    }
}

当您获得下一个条件的输入时,当前正在执行的操作将覆盖为上一个条件输入的值。 我相信您想为arrayCrit使用2d数组来存储每个条件的所有百分比。 仅在这种情况下,才有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();
}

1)添加

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 for each i = 25 times
    System.out.print("Percentage: ");
    arrayCrit[j]=Integer.parseInt(inpt.readLine());
 }
}

删除嵌套的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 
    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]);
    }       
  }
}

有用的链接

您必须在循环之外定义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());
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM