使用for/while statement和数组JAVA处理输入
我知道这可能不是扫描输入并打印出来的最佳方式,但我想知道这是否可行。 我一直收到一个运行时错误。我做错了什么? 输入是1,2,3,4,5 我希望计算机在达到3时停止处理输入,这样它只能在标准输出窗口中打印1-3。 任何反馈都很好。多谢各位使用for/while statement和数组JAVA处理输入,java,arrays,Java,Arrays,我知道这可能不是扫描输入并打印出来的最佳方式,但我想知道这是否可行。 我一直收到一个运行时错误。我做错了什么? 输入是1,2,3,4,5 我希望计算机在达到3时停止处理输入,这样它只能在标准输出窗口中打印1-3。 任何反馈都很好。多谢各位 import java.util.Scanner; public class numRewrite { public static void main(String[] args) { Scanner input = new Scanne
import java.util.Scanner;
public class numRewrite {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] numInput = {};
int numPlace;
for(numPlace = 0;numPlace < 4;numPlace++) {
numInput[numPlace] = input.nextInt();
}
while(numInput[numPlace]!= 4) {
System.out.println(numInput[numPlace]);
}
}
}
import java.util.Scanner;
公共类numRewrite{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int[]numInput={};
int numPlace;
对于(numPlace=0;numPlace<4;numPlace++){
numInput[numPlace]=input.nextInt();
}
while(numInput[numPlace]!=4){
System.out.println(numInput[numPlace]);
}
}
}
发生了一些令人困惑的事情:
- 您的
变量是一个input
数组,您可以用长度为零对其进行初始化。如果您想使用一个随着添加内容而增长的列表,我建议使用真正的int
列表
类型。看李>
- 您也不会在while循环中增加
变量,这意味着您将永远打印出相同的值numplace
- 您也不会在while循环中增加
Zin Minn提出了一个很好的观点,如果你真的想使用数组而不是列表,你可以用5的大小初始化它。首先你必须声明numInput数组:
int[]numInput=new int[5]代码>
使用循环读取用户输入,并仅打印用户键入的前三个整数:
for (int numPlace = 0; numPlace < 5; numPlace++) {
numInput[numPlace] = input.nextInt();
if(numPlace <3)
System.out.println(numInput[numPlace]);
}
for(int numPlace=0;numPlace<5;numPlace++){
numInput[numPlace]=input.nextInt();
如果(numPlace您的代码和您想要实现的不匹配。如果需要,可以使用扫描仪读取用户或文件的输入。根据我对您提供的内容的理解,我认为您正在寻找以下内容:
public class numRewrite {
public static void main(String[] args) {
int[] numInput = {1,2,3,4,5};
for(int numPlace = 0;numPlace < 3;numPlace++) {
System.out.println(numInput[numPlace]);
}
}
}
公共类numRewrite{
公共静态void main(字符串[]args){
int[]numInput={1,2,3,4,5};
对于(int numPlace=0;numPlace<3;numPlace++){
System.out.println(numInput[numPlace]);
}
}
}
如果您没有从输入的用户处读取输入,则不需要扫描仪
如果您正在寻找用户的输入,那么您可能正在寻找这个
import java.util.Scanner;
public class numRewrite {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] numInput = new int[5];
int numPlace;
for(numPlace = 0;numPlace < 5;numPlace++) {
System.out.println("Enter input: ");
numInput[numPlace] = input.nextInt();
}
for(int i = 0; i < 3; i++){
System.out.println(numInput[i]);
}
}
}
import java.util.Scanner;
公共类numRewrite{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int[]numInput=newint[5];
int numPlace;
对于(numPlace=0;numPlace<5;numPlace++){
System.out.println(“输入:”);
numInput[numPlace]=input.nextInt();
}
对于(int i=0;i<3;i++){
System.out.println(numInput[i]);
}
}
}
您有很多问题
我想您说过希望用户输入5个值,然后程序应该输出1-3个值
您没有在while循环中增加var。您的输入只会增加到3。您没有初始化数组
import java.util.Scanner;
public class numRewrite {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] numInput = new int[5];
for(int numPlace = 0; numPlace < 5; numPlace++) {
numInput[numPlace] = input.nextInt();
}
while(int numPlace != 3) {
System.out.println(numInput[numPlace++]);
}
}
}
import java.util.Scanner;
公共类numRewrite{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int[]numInput=newint[5];
对于(int numPlace=0;numPlace<5;numPlace++){
numInput[numPlace]=input.nextInt();
}
while(int numPlace!=3){
System.out.println(numInput[numPlace++]);
}
}
}
您使用的是固定大小的int[]
声明此数组后,无法更改大小
您可以使用ArrayList,因为它不是固定大小的数组,并且可以扩展
如果要使用int[],则必须初始化大小
例如:
int[] numInput = new int[5];
您的数组长度为0,因为您是使用{}
创建它的。这意味着您不能在其中存储任何内容。欢迎使用。仅使用代码的答案不太适合此网站,我们希望您能解释OP的问题,以及您提供的代码修复问题的原因。请阅读
int[] numInput = new int[5];