Как вернуться в начало программы - Java - PullRequest
0 голосов
/ 08 июня 2018

У меня проблемы с получением моего кода, чтобы вернуться к началу кода и перезапустить, когда подтверждение не равно 1. Я пробовал функцию возврата, но она просто повторяет подтвержденное постоянно, и я не уверен, что делать.

import java.util.Scanner;

public class zoo {
    public static void main(String[] args) {

        int optionNumber = 0;
        int numberOfTickets = 0;
        int confirm = 0;
        int totalAmount = 0;

        int[] priceArray;
        priceArray = new int[3];
        priceArray[0] = 18;
        priceArray[1] = 36;
        priceArray[2] = (int) 32.50; 

        Scanner input = new Scanner (System.in);

        System.out.println("\t" + "@@@@@ Welcome to Zoos Victoria @@@@@");
        System.out.println("\t" + "\t" + "MAIN MENU" + "\n");
        System.out.println("\t" + "Zoo has the following ticketing options" + "\n");
        System.out.println("\t" + "1 = Child (4-6 yrs");
        System.out.println("\t" + "2 = Adult (16+ yrs");
        System.out.println("\t" + "3 = Senior (60+ yrs" + "\n");

        System.out.println("Enter your option:" );
        optionNumber=input.nextInt();

         if(optionNumber == 1) {
            System.out.println("Enter total No of tickets for Child");
            numberOfTickets=input.nextInt();
        } else if (optionNumber == 2){
            System.out.println("Enter total No of tickets for Adult");
            numberOfTickets=input.nextInt();
        } else {
             System.out.println("Enter total No of tickets for Senior");
             numberOfTickets=input.nextInt();
        }

        System.out.println("Press 1 to confirm");
        confirm=input.nextInt();

        if (confirm ==1) {
            System.out.println("confirmed");
        } else {

        }



        if(optionNumber == 1) {
            totalAmount=priceArray[0]*numberOfTickets;
            System.out.println("Total amount for child tickets: $" + totalAmount);

        } else if (optionNumber == 2) {
            totalAmount=priceArray[1]*numberOfTickets;
            System.out.println("Total amount for adult tickets $" + totalAmount);

        } else {
            totalAmount=(int) ((double) priceArray[2]*numberOfTickets);
            System.out.println("Total amount for senior tickets $" + totalAmount);
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Рассмотрим do...while цикл , with the при проверке условия

Например:

Scanner input = new Scanner(System.in);
int confirm;
do {
    // everything in here will repeat
    // until the input is not equal to 1
    // so put your desired code here
    System.out.println("Press 1 to confirm");
    confirm = input.nextInt();
} while (confirm != 1);

Так что все в { после do и до тех пор, пока } до while не повторится, пока пользователь не введет 1.

0 голосов
/ 08 июня 2018

Вы можете построить вокруг него петлю.Примерно так (убрал некоторый код, но идея, как он должен выглядеть, должна быть ясна):

boolean chooseOption = true;
    while (chooseOption) {
        Scanner input = new Scanner(System.in);
        //print menu
        System.out.println("\t" + "@@@@@ Welcome to Zoos Victoria @@@@@");
        //TODO Your code 

        if (confirm == 1) {
            System.out.println("confirmed");
            // finish option selection
            chooseOption = false;
        } else {
            //choseOption stays true, hence the menu will be reprinted
            System.out.println("Cancelled ticketing." + " Selected Option number: " + optionNumber);
        }
    }

Всегда старайтесь перенести свою проблему в ряд задач.В этом случае вы хотите показать меню, если не был сделан удачный выбор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...