Вам нужен еще один, пока l oop внутри первого, если я правильно понимаю, вы хотите сменить тему, как только вы введете изменение? если это так, то это будет работать:
public static void main(String args[])
{
Scanner s = new Scanner(System.in);
System.out.println("Here is Subject list");
System.out.println("1-Physics");
System.out.println("2-Math");
System.out.println("3-computer");
setSubject:
while (true)
{
System.out.println("Enter subject number here");
String sub = s.nextLine();
if (sub.equals("1"))
{
System.out.println("Physics");
int marks = 0;
while (true)
{
System.out.println("Enter marks /Enter change for change /Enter exit for leave");
if (s.hasNextInt())
{
marks = s.nextInt();
s.nextLine();
} else
{
String command = s.nextLine();
if (command.equalsIgnoreCase("exit")) break setSubject;
else if (command.equalsIgnoreCase("change")) continue setSubject;
else
{
System.out.println("Please enter a valid option");
continue;
}
}
if (marks < 40)
{
System.out.println("Student is fail");
} else if (marks == 40)
{
System.out.println("Student is fail he need more practice");
} else if (marks < 70)
{
System.out.println("need more practice but also good");
} else if (marks == 70)
{
System.out.println("Good");
} else if (marks < 90)
{
System.out.println("Good but also Excellent");
} else if (marks == 90)
{
System.out.println("Excellent");
} else if (marks < 100)
{
System.out.println("Outstanding");
} else if (marks == 100)
{
System.out.println("Good but also excellent");
} else
{
System.out.println("");
}
}
}
}
}
Пробный прогон
Here is Subject list
1-Physics
2-Math
3-computer
Enter subject number here
1
Physics
Enter marks /Enter change for change /Enter exit for leave
change
Enter subject number here
1
Physics
Enter marks /Enter change for change /Enter exit for leave
50
need more practice but also good
Enter marks /Enter change for change /Enter exit for leave
60
need more practice but also good
Enter marks /Enter change for change /Enter exit for leave
exit
Process finished with exit code 0
С одним, пока l oop:
public static void main(String args[])
{
Scanner s = new Scanner(System.in);
System.out.println("Here is Subject list");
System.out.println("1-Physics");
System.out.println("2-Math");
System.out.println("3-computer");
String subject = "";
int marks = 0;
while (true)
{
if (subject.isEmpty())
{
System.out.println("Enter subject number here");
subject = s.nextLine();
}
if (subject.equals("1"))
{
System.out.println("Physics");
System.out.println("Enter marks /Enter change for change /Enter exit for leave");
if (s.hasNextInt())
{
marks = s.nextInt();
s.nextLine();
} else
{
String command = s.nextLine();
if (command.equalsIgnoreCase("exit")) break ;
else if (command.equalsIgnoreCase("change")) {
subject = "";
continue ;
}
else
{
System.out.println("Please enter a valid option");
continue;
}
}
if (marks < 40)
{
System.out.println("Student is fail");
} else if (marks == 40)
{
System.out.println("Student is fail he need more practice");
} else if (marks < 70)
{
System.out.println("need more practice but also good");
} else if (marks == 70)
{
System.out.println("Good");
} else if (marks < 90)
{
System.out.println("Good but also Excellent");
} else if (marks == 90)
{
System.out.println("Excellent");
} else if (marks < 100)
{
System.out.println("Outstanding");
} else if (marks == 100)
{
System.out.println("Good but also excellent");
} else
{
System.out.println("");
}
marks = 0;
}
}
}