[英]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.