Невозможно получить общую сумму - PullRequest
0 голосов
/ 29 июня 2018

Привет, ребята, я исправил первоначальную проблему, но теперь она не складывается правильно. Я не уверен, что делать и где я ошибся. Любая помощь будет оценена.

import java.util.Scanner;

публичный зоопарк { public static void main (String [] args) {

  int quantity, confirm, option, finalTotal;
  float childTotal = 0;
  float adultTotal = 0;
  float seniorTotal = 0;

  final double childCost = 18;
  final double adultCost = 36;
  final double seniorCost = 32.50;

  int Option[] = new int[3];
  Option[0] = 1;
  Option[1] = 2;
  Option[2] = 3;

  boolean  continueLoop = true; 
  char resume;

    switch (option) {

            case 1:
                childTotal=(int) ((double) quantity*childCost) ;
                System.out.println("Total amount for child tickets: $" + childTotal);
                break;

            case 2:
                adultTotal=(int) ((double) quantity*adultCost) ;
                System.out.println("Total amount for adult tickets $" + adultTotal);
                break;

            default:
                seniorTotal=(int) ((double) quantity*seniorCost);
                System.out.println("Total amount for senior tickets $" + seniorTotal);
                break;
              }

    System.out.println("Do you wish to continue? (Y/N) ");
    resume = input.next().charAt(0);

       switch (option) {
            case 1:
            finalTotal=(int) ((double) childCost+childTotal);
            System.out.println("Total amount for tickets: $" + finalTotal);
            break;
        case 2:
            finalTotal=(int) ((double) adultCost+adultTotal) ;
            System.out.println("Total amount for tickets $" + finalTotal);
            break;
        default:
            finalTotal=(int) ((double) seniorCost+seniorTotal);
            System.out.println("Total amount for senior tickets $" + finalTotal);
            break;
          }

Ответы [ 2 ]

0 голосов
/ 27 июля 2018

У меня исправлены проблемы, а также обновлен код для повышения производительности.

package test;

import java.util.Scanner;

public class CSE1PGX_A2 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        final float childCost = 18;
        final float adultCost = 36;
        final float seniorCost = 32.50F;

        boolean continueLoop = true;
        Scanner input = new Scanner(System.in);

            float childTotal = 0;
            float adultTotal = 0;
            float seniorTotal = 0;

        while (continueLoop) {
            int option, confirm=0;

            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:");

            option = input.nextInt();

            switch (option) {
                case 1: {
                    System.out.println("Enter total No of tickets for Child:");
                    int quantity = input.nextInt();
                    childTotal = quantity * childCost;

                    System.out.println("You are purchasing " + quantity + " child tickets at " + childCost + " each!");
                    System.out.println("Press 1 to confirm");
                    confirm = input.nextInt();
                    if (confirm == 1) {
                        System.out.println("Total amount for child tickets: $" + childTotal);
                    }
                    break;
                }
                case 2: {
                    System.out.println("Enter total No of tickets for Adult:");
                    int quantity = input.nextInt();
                    adultTotal = quantity * adultCost ;

                    System.out.println("You are purchasing " + quantity + " adult tickets at " + adultCost + " each!");

                    System.out.println("Press 1 to confirm");
                    confirm = input.nextInt();
                    if (confirm == 1) {
                        System.out.println("Total amount for adult tickets $" + adultTotal);
                    }
                    break;
                }
                case 3: {
                    System.out.println("Enter total No of tickets for Senior:");
                    int quantity = input.nextInt();
                    seniorTotal =  quantity * seniorCost ;
                    System.out.println("You are purchasing " + quantity + " senior tickets at " + seniorCost + " each!");

                    System.out.println("Press 1 to confirm");
                    confirm = input.nextInt();
                    if (confirm == 1) {
                        System.out.println("Total amount for senior tickets $" + seniorTotal);
                    }
                    break;
                }
            }

            if (confirm != 1) {
                System.out.println("Incorrect key!");
            }

            System.out.println("Do you wish to continue? (Y/N) ");
            char resume = input.next().charAt(0);

        if (resume != 'y' && resume != 'Y') {
            continueLoop = false;

            System.out.println("Total amount for child tickets: $" + childTotal);
            System.out.println("Total amount for senior tickets $" + seniorTotal);
            System.out.println("Total amount for adult tickets $" + adultTotal);
            float  finalTotal =  childTotal + adultTotal + seniorTotal ;
            System.out.println("Total amount payable: $ " + finalTotal);
        }
        }
    }
}
0 голосов
/ 29 июня 2018

может быть, вы пытаетесь сделать что-то вроде этого:

public int someMethod(){
    int childTotal; // here variable must be initialized before return
                    // like this int childTotal = 0;
        switch (option) {
            case 1:
            childTotal=(int) ((double) quantity*childCost) ;
            System.out.println("Total amount for child tickets: $" + childTotal);
            break;
        }
        ...
        return childTotal;
}

в этом случае вы получите ошибку, эта переменная должна быть инициализирована.

В любом случае, вы дали мало информации о своей проблеме. Может быть, вы можете показать, какой ответ вы получите от системы, stackTrace или что-то в этом роде. Знаете ли вы о разнице между инициализацией и объявлением?

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