Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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_Arrays_Multidimensional Array_Java.util.scanner - Fatal编程技术网

Java 二维阵列扫描仪验证

Java 二维阵列扫描仪验证,java,arrays,multidimensional-array,java.util.scanner,Java,Arrays,Multidimensional Array,Java.util.scanner,任何能把我引向正确方向的人。我正在构建一个简单的标记程序,从扫描仪中获取输入并将其插入到我的2D阵列中。我想验证我的输入,使其不低于0或高于100,但如果我的数字不正确,我不希望数组移动到下一个位置 public static void main(String[] args) { Scanner input = new Scanner(System.in);//naming the scanner String [] student = {"Mark","Jen","Gaby"

任何能把我引向正确方向的人。我正在构建一个简单的标记程序,从扫描仪中获取输入并将其插入到我的2D阵列中。我想验证我的输入,使其不低于0或高于100,但如果我的数字不正确,我不希望数组移动到下一个位置

public static void main(String[] args) 
{
    Scanner input = new Scanner(System.in);//naming the scanner
    String [] student = {"Mark","Jen","Gaby","John","Michael","James"};
    String [] subject = {"Digital electronics","Analogue electronics","Maths","Networks","Telecommunications",
            "Computer applications","Software developemnt","Workshop"};
    String [] printSub = {"Digit","Analo","Maths","Netwo","Telec","Appli","Softw","Works"};
    int maxRow = 6;//setting max row amount int
    int maxCol = 8;//set max column amount int
    int [][] mark = new int [maxRow][maxCol];//declaring the int array and setting the row & column max.
    int i = 0, j = 0;//declaring i and j for use in the for loops 
    int maxMark = 0;//declaring for use in if statement to find highest mark
    int minMark =100;//Declaring for use in if statement to find lowest mark

    for(i = 0; i < maxRow; i++)
    {
        for(j = 0; j < maxCol; j++)
        {
            System.out.print("Please enter "+student[i]+" mark for "+subject[j]+" and press return :");
            mark[i][j]= input.nextInt();
        }
    }

    for(i=0; i < maxRow; i++)
    {           
        for(j=0; j < maxCol; j++)
        {
            if (i == 0 && j == 0)
            {
                System.out.print("Student  \t");
                for(int sub = 0; sub < 8; sub++)
                {
                    System.out.print(printSub [sub]+"\t");
                }
                System.out.println();
                System.out.println();
            }
            if(i < maxRow && j == 0)
            {
                System.out.print(student[i]+"\t \t  ");
            }

            System.out.print(mark [i][j]+"\t");
        }
        System.out.println();
        System.out.println();
    }
}
publicstaticvoidmain(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);//命名扫描仪
String[]student={“Mark”、“Jen”、“Gaby”、“John”、“Michael”、“James”};
String[]主题={“数字电子”、“模拟电子”、“数学”、“网络”、“电信”,
“计算机应用”、“软件开发”、“工作坊”};
字符串[]printSub={“数字”、“分析”、“数学”、“网络”、“电视”、“应用”、“软件”、“作品”};
int maxRow=6;//设置最大行数int
int maxCol=8;//设置最大列数int
int[][]mark=new int[maxRow][maxCol];//声明int数组并设置行和列的最大值。
int i=0,j=0;//声明i和j用于for循环
int maxMark=0;//声明在if语句中用于查找最高标记
int minMark=100;//声明在if语句中用于查找最低标记
对于(i=0;i
我不是在寻找答案,我是在寻找一个方向,我可以自己找出答案更多的推动

提前谢谢你的帮助


Matt

微移:您不直接将数字插入数组,而是将其插入到某个临时变量中,检查它,然后决定是保存它还是再次请求(需要循环时)


剧透1:这里有一个完整的解决方案,如果你想自己做,不要看那里:):

(i=0;i{ 对于(j=0;j100){ System.out.println(“不能插入小于0或大于100的值!请重试”); number=input.nextInt(); }否则{ isItOk=真; } } 标记[i][j]=编号; } }
扰流板2:这是一个更好的代码,但是对于初学者,我建议使用扰流板1,因为它总是可用的。在更复杂的问题中,扰流板2的解决方案并不总是可行的

    for (i = 0; i < maxRow; i++) {
        for (j = 0; j < maxCol; j++) {
            System.out.print("Please enter ");
            int number = input.nextInt();
            while (number < 0 || number > 100) {
                System.out.println("You shall not insert a value below 0 or bigger than 100! Try it again");
                number = input.nextInt();
            }
            mark[i][j] = number;
        }
    }
(i=0;i{ 对于(j=0;j100){ System.out.println(“不能插入小于0或大于100的值!请重试”); number=input.nextInt(); } 标记[i][j]=编号; } }
Scanner s=新的扫描仪(System.in);
整数=0;
系统输出打印(“请输入”);
while(true)
{
编号=s.nextInt();
如果(编号>-1&&编号<101)
打破
System.out.println(“标记应介于0和100之间,请输入”);
}
您还需要验证输入是否为整数,这可以通过异常处理完成

    for (i = 0; i < maxRow; i++) {
        for (j = 0; j < maxCol; j++) {
            System.out.print("Please enter ");
            int number = input.nextInt();
            while (number < 0 || number > 100) {
                System.out.println("You shall not insert a value below 0 or bigger than 100! Try it again");
                number = input.nextInt();
            }
            mark[i][j] = number;
        }
    }
    Scanner s = new Scanner(System.in);
    int number =0;
    System.out.print("Please enter ");
    while(true)
    {
        number = s.nextInt();
        if(number > -1 && number < 101)
            break;
        System.out.println("Marks should be between  0 and 100, Please enter");

    }