Как я могу повторить утверждение «введите оценки или оценку» с in в то время как l oop. В этом случае каждый раз возвращайтесь к началу l oop для повторного ввода темы? - PullRequest
0 голосов
/ 16 марта 2020

Как я могу повторить оператор «введите оценки или оценки» с in в то время как l oop. В этом случае каждый раз возвращайтесь к началу l oop. и я хочу повторять ввод отметок до тех пор, пока пользователь не захочет уйти?


public class Marks2 {
    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");
        boolean input=true;

        while (input){
            System.out.println("Enter subject number here");
            String sub=s.nextLine();

            if(sub.equals("1")) {
                System.out.println("Physics");
                System.out.println("");
                System.out.println("Enter marks  /Enter change for change  /Enter exit for leave");
                String change1 = null;
                String change2 = null;
                int marks = 0;
                try {
                    change1 = s.nextLine();
                    marks = Integer.parseInt(change1);
                } catch (Exception e) {
                    System.out.println("Please enter only string value");
                    change2 = s.nextLine();
                    if (change2.equals("change")) {
                        continue;
                    } else if (change2.equals("exit")) {
                        System.exit(0);
                    }
                }

                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 if(change1.equals("change")){
                    continue;
                }
                else if(change2.equals("exit")){
                    System.exit(0);
                }
                else  {
                    System.out.println("");
                }
                continue;
            }
        }
    }
}

После продолжения управление перешло к началу l oop и попросит ввести тему еще раз. Можно ли ввести оценку, пока пользователь не захочет уйти?

1 Ответ

1 голос
/ 16 марта 2020

Вам нужен еще один, пока 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;
            }
        }
    }

...