我正在java中创建一个简单的程序。所以当我给出输入时:
2 2 4 5
输出将是:
2 2 4 5
无论我输入什么,它都会输出相同的输出。 但在它必须先要求输入元素数之前。
编辑我的问题
好的,我试过这个
package com.logical01;
import java.util.Scanner;
public class MainProgram {
public static void main(String[] args){
int[] array=new int[100];
Scanner in=new Scanner(System.in);
System.out.println("Enter your number elements: ");
int n_Elements=in.nextInt();
System.out.println("Enter your number now: ");
for(int i=0; i<=n_Elements; i++){
array[i]=in.nextInt();
}
int i = 0;
System.out.println(array[i]);
}
}
输出
Enter your number elements:
5
Enter your number now:
6
2
1
3
5
6
and it prints..
6
答案 0 :(得分:4)
移动此行:
System.out.println(array[i]);
进入正上方的for循环。
这个程序完全编译的原因是因为你已经在循环的顶部声明了int i;
。
如果您将声明在中移动到for循环的声明中,那么当您尝试做错事时它就不会编译。
for(int i=0; i<=n_Elements; i++) {
这是防御性编码的一个示例,可以保护您免受其他地方的错误。
答案 1 :(得分:1)
这就是你想要的:
import java.util.Scanner;
public class MainProgram {
public static void main(String[] args){
int[] array=new int[100];
Scanner in=new Scanner(System.in);
System.out.println("Enter your number elements: ");
int n_Elements=in.nextInt();
System.out.println("Enter your number now: ");
for(int i=0; i<n_Elements; i++){
array[i]=in.nextInt();
}
for(int i = 0; i<n_Elements; i++){ //you need to loop to get all the values in an array
System.out.print(array[i]);
}
}
答案 2 :(得分:0)
想想你的最后一行。
我的价值是多少? 什么是数组[0]; 什么是数组[1]; .. 你真的打印什么 - 你想要打印什么?
初始化数组后(int [] array = new int [100]),每个条目都为0。
尝试这个以进行调试和理解:
public static void main(String[] args) {
int[] array = new int[100];
int i;
Scanner in = new Scanner(System.in);
System.out.println("Enter your number elements: ");
int n_Elements = in.nextInt();
System.out.println("Enter your number now: ");
for (i = 0; i < n_Elements; i++) {
array[i] = in.nextInt();
System.out.println("input: array[" + i + "]= " + array[i]);
}
System.out.println("printing: i=" + i + " and array[" + i + "]="
+ array[i]);
}