Java 如何请求输入if循环内部的特定条件
在check_mark()方法中,如果我对物理(位于第二位置a[1])做了错误的标记,即标记>100,它将进入if循环,它必须要求输入相同的物理标记,但它再次从[0]开始,即数学。。。。。。和英语一样,它也是从数学开始的 请帮助我解决这个问题,它必须要求输入错误输入的特定标记 故障代码: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
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();
}
}
}