Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组检查输入_Java_Validation - Fatal编程技术网

Java 数组检查输入

Java 数组检查输入,java,validation,Java,Validation,所以我试图检查输入,如果输入的整数不大于前一个整数,它应该再次询问。我的程序已经检查了整数是否超出范围,以及输入的不是整数,但它只是不检查输入的整数是否大于上一个整数 for (int i = 0; i < finalGrades.length; i++){ //check input is an integer while(!input.hasNextInt()){ System.out.print("Please enter integers

所以我试图检查输入,如果输入的整数不大于前一个整数,它应该再次询问。我的程序已经检查了整数是否超出范围,以及输入的不是整数,但它只是不检查输入的整数是否大于上一个整数

for (int i = 0; i < finalGrades.length; i++){
    //check input is an integer
    while(!input.hasNextInt()){     
        System.out.print("Please enter integers only: ");
        input.next();
    }

    finalGrades[i] = input.nextInt();
    if(finalGrades[i] > 100 || finalGrades[i] < 0){     
        System.out.print("Please enter integers between 0 and 100 only:");
        finalGrades[i] = input.nextInt();
    }
    if(finalGrades[i] < finalGrades[i-1]){
        System.out.print("Please enter integers in ascending order only: ");
        finalGrades[i]= input.nextInt();
        continue;
    }   

}
for(int i=0;i100 | |最终等级[i]<0){
System.out.print(“请仅输入介于0和100之间的整数:”);
finalGrades[i]=input.nextInt();
}
if(最终等级[i]<最终等级[i-1]){
System.out.print(“请仅按升序输入整数:”);
finalGrades[i]=input.nextInt();
持续
}   
}

您有任何错误吗?。是否存在java.lang.ArrayIndexOutOfBoundsException


“如果语句运行不正常,我的底部”是什么意思

如果这是您的问题,请参阅下面的帮助

当i=0时

如果(finalGrades[i]if(finalGrades[0] 这是完整的代码

    for (int i = 0; i < finalGrades.length; i++) {
        // check input is an integer
        while (!input.hasNextInt()) {
            System.out.print("Please enter integers only: ");
            input.next();
        }

        finalGrades[i] = input.nextInt();
        if (finalGrades[i] > 100 || finalGrades[i] < 0) {
            System.out
                    .print("Please enter integers between 0 and 100 only:");
            finalGrades[i] = input.nextInt();
        }
        if (i > 0) {
            if (finalGrades[i] < finalGrades[i - 1]) {
                System.out
                        .print("Please enter integers in ascending order       only: ");
                finalGrades[i] = input.nextInt();
                continue;
            }
        }
    }
for(int i=0;i100 | |最终等级[i]<0){
系统输出
.print(“请仅输入介于0和100之间的整数:”);
finalGrades[i]=input.nextInt();
}
如果(i>0){
if(最终等级[i]<最终等级[i-1]){
系统输出
.print(“请仅按升序输入整数:”);
finalGrades[i]=input.nextInt();
持续
}
}
}

谢谢,

在您使用的两种情况下,都会出现数组越界错误

    for(int i = 0; i < list.length; i++){}

我的bottomif语句运行不正常。我刚刚做了标记。你能添加调用此代码的函数和一些示例数据吗?
if(finalGrades[I]
当I=0(for循环的第一次迭代)时,你不会得到一个索引越界错误吗?是的,但它仍然不能正常工作。我试着让I=1;我是的,我理解。我将顶部的for循环更改为have(i=1;我只在i>0时执行if(finalGrades[i]for(i=0;i
    for(int i = 1; i <= list.length; i++){}
if(i > 0){
    if(finalGrades[i] < finalGrades[i-1]){
        System.out.print("Please enter integers in ascending order only: ");
        finalGrades[i]= input.nextInt();
        continue;
    }
}