Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 如何请求输入if循环内部的特定条件_Java_Arrays_Loops_For Loop_If Statement - Fatal编程技术网

Java 如何请求输入if循环内部的特定条件

Java 如何请求输入if循环内部的特定条件,java,arrays,loops,for-loop,if-statement,Java,Arrays,Loops,For Loop,If Statement,在check_mark()方法中,如果我对物理(位于第二位置a[1])做了错误的标记,即标记>100,它将进入if循环,它必须要求输入相同的物理标记,但它再次从[0]开始,即数学。。。。。。和英语一样,它也是从数学开始的 请帮助我解决这个问题,它必须要求输入错误输入的特定标记 故障代码: import java.util.Scanner; class averageMark { static int no_of_students=2; static int a[]=new in

在check_mark()方法中,如果我对物理(位于第二位置a[1])做了错误的标记,即标记>100,它将进入if循环,它必须要求输入相同的物理标记,但它再次从[0]开始,即数学。。。。。。和英语一样,它也是从数学开始的

请帮助我解决这个问题,它必须要求输入错误输入的特定标记

故障代码:

import java.util.Scanner;

class averageMark
{
    static int no_of_students=2;
    static int a[]=new int[3];
    static int no_of_subjects=a.length;
    static String b[]=new String[]{"MATHS","PHYSICS","ENGLISH"};
    static int avg;
    static int total_marks=0;
    static Scanner sc=new Scanner(System.in);

    void check_mark()
    {
       for (int j = 0; j < 3; j++) 
       {
           System.out.print("Enter "+b[j]+" mark: ");
           a[j]=sc.nextInt();
           if(a[j]>100)
           {
               System.out.println("Please provide correct mark which is equal to or below 100");
               check_mark();
           }
       }
   }

   public static void main( String[] args )
   {
      for (int i = 0; i < no_of_students; i++) 
      {    
        averageMark check=new averageMark();
        check.check_mark();
        for (int k = 0; k < no_of_subjects; k++) 
        {
            total_marks+=a[k];
        }
        avg=total_marks/no_of_subjects;
        System.out.println();
        System.out.println("The average is: "+avg);
        if(avg>=70)
        {
            System.out.println();
            System.out.println("!!!Qualified!!!");   
        }
        else
        {
            System.out.println();
            System.out.println("!!!Not qualified!!!");
        }
        System.out.println();
    }
    sc.close();
    }
 }
import java.util.Scanner;
类平均方格
{
学生的静态int no_=2;
静态整数a[]=新整数[3];
受试者的静态int no_=a.长度;
静态字符串b[]=新字符串[]{“数学”、“物理”、“英语”};
静态平均积分;
静态整数总分数=0;
静态扫描仪sc=新扫描仪(System.in);
无效复选标记()
{
对于(int j=0;j<3;j++)
{
系统输出打印(“输入”+b[j]+“标记:”);
a[j]=sc.nextInt();
如果(a[j]>100)
{
System.out.println(“请提供等于或低于100的正确标记”);
勾选标记();
}
}
}
公共静态void main(字符串[]args)
{
for(int i=0;i=70)
{
System.out.println();
System.out.println(“!!!合格!!!”);
}
其他的
{
System.out.println();
System.out.println(!!!不合格!!!);
}
System.out.println();
}
sc.close();
}
}

如果标记不正确,则不应调用复选标记方法。您应该使用减量索引

void check_mark() {
   for (int j = 0; j < 3; j++) {
       System.out.print("Enter "+b[j]+" mark: ");
       a[j]=sc.nextInt();
       if(a[j]>100) {
           System.out.println("Please provide correct mark which is equal to or below 100");
           j--;
       }
   }
}
无效复选标记(){
对于(int j=0;j<3;j++){
系统输出打印(“输入”+b[j]+“标记:”);
a[j]=sc.nextInt();
如果(a[j]>100){
System.out.println(“请提供等于或低于100的正确标记”);
j--;
}
}
}

如果标记不正确,则不应调用复选标记方法。您应该使用减量索引

void check_mark() {
   for (int j = 0; j < 3; j++) {
       System.out.print("Enter "+b[j]+" mark: ");
       a[j]=sc.nextInt();
       if(a[j]>100) {
           System.out.println("Please provide correct mark which is equal to or below 100");
           j--;
       }
   }
}
无效复选标记(){
对于(int j=0;j<3;j++){
系统输出打印(“输入”+b[j]+“标记:”);
a[j]=sc.nextInt();
如果(a[j]>100){
System.out.println(“请提供等于或低于100的正确标记”);
j--;
}
}
}

您也可以使用while()循环来完成

无效复选标记()
{
对于(int j=0;j<3;j++)
{
系统输出打印(“输入”+b[j]+“标记:”);
a[j]=sc.nextInt();
而(a[j]>100){
System.out.println(“请提供等于或低于100的正确标记”);
a[j]=sc.nextInt();
}
}
}

您也可以使用while()循环来完成

无效复选标记()
{
对于(int j=0;j<3;j++)
{
系统输出打印(“输入”+b[j]+“标记:”);
a[j]=sc.nextInt();
而(a[j]>100){
System.out.println(“请提供等于或低于100的正确标记”);
a[j]=sc.nextInt();
}
}
}