Java:if语句中的ERROR变量作用域

时间:2017-09-18 22:09:46

标签: java variables if-statement compiler-errors switch-statement

问题:

互联网服务提供三种不同的订阅套餐:

套餐1:每月15.95美元,最长可达10小时。额外的小时是每小时2.00美元。 套餐2:每月20.95美元,最长20小时的服务。额外的时间是每小时1.00美元。 套餐3:每月$ 30.99无限制访问。

编写执行以下操作的程序:

询问用户他们有哪个计划。

向用户询问他们正在结算的月份的月份编号(1-12)。

询问用户他们使用了多少小时。

显示账单费用。

同时显示套餐1客户购买套餐2或3时可节省多少钱,以及套餐2客户购买套餐3后可节省多少钱。

如果没有节省,请不要显示此消息。

输入验证:

计划编号不能为负数。

计划编号必须是值[1,3]。

小时数不能为负数。

小时数不能超过给定月份的总小时数。

30天的月份为720小时,31天的月份为744小时,2月份的28天为672小时(不用担心闰年)。

验证用户未输入的值大于给定月份的总小时数。

请参阅下表。

月,日,小时。

1月31日,744。

2月28日,672年。

3月31日,744。

April,30,720。

5月31日,744。

6月30日,720。

7月31日,744。

8月31日,744。

9月30日,720日。

10月31日,744。

11月30日,720日。

12月31日,744。

我的问题。

我的变量存在问题。我知道有更好的方法来编写这个程序,但是你应该记住这是我用Java编写的第四周编码。

我使用了太多if语句,当我尝试编译它时;我有一些变量得到12个错误。我假设变量的变量范围被某个if语句阻塞了。因为编译器要求初始化变量,即使它们之前已初始化。 任何帮助将不胜感激:)

/*
 * Homework 04 Problem 05
 * Student: Kevin Crespin
 * CIN: 
 * Description: This program does the following:
 * Ask the user which plan they have.
 * Ask the user for the month number (1-12) of which month they are being billed.
 * Ask the user how many hours they used.
 * Display the cost of their bill.
 * Also display how much money Package 1 customers would would have saved if they purchased
 * packages 2 or 3, and how much money Package 2 customers would have saved if they purchased
 * Package 3. If there were no savings, do not display this message.
 */
// import scanner class
import java.util.Scanner;

public class HW04P05{
public static void main (String[] args) {
    Scanner input = new Scanner(System.in);
    // USER MENU
    final String USER_MENU =
        " \n" +\
        "[1] Package 1: $15.95 a month for up to 10 hours of service. Additional hours are $2.00 per hour.\n" +
        "[2] Package 2: $20.95 a month for up to 20 hours of service. Additional hours are $1.00 per hour.\n" +
        "[3] Package 3: $30.99 per month unlimited access.\n" +
        " \n" +
        "Enter [1 - 3] for select your package: ";
    final int PACKAGE_1 = 1;
    final int PACKAGE_2 = 2;
    final int PACKAGE_3 = 3;
    System.out.print(USER_MENU);
    int choice = input.nextInt();
    System.out.println(" ");
    if (choice < 0) {
        System.out.println("The menu choice cannot be negative, must be a value [1 - 3]");
        System.out.println("The program will know exit.");
        System.exit(1);
    }
    else if (choice == 0) {
        System.out.println("The menu choice cannot be zero, must be a value [1 - 3]");
        System.out.println("The program will know exit.");
        System.exit(1);
    }
    else if (choice > 3) {
        System.out.println("The menu choice must be a value [1 - 3]");
        System.out.println("The program will know exit.");
        System.exit(1);
    }
    System.out.print("[1] January   [4] April  [7] July       [10] October\n");
    System.out.print("[2] February  [5] May    [8] August     [11] November\n");
    System.out.print("[3] March     [6] June   [9] September  [12] December\n");
    System.out.println(" ");
    System.out.print("Enter [1 - 12] for select billed month: ");
    int month = input.nextInt();
    if (month < 0) {
        System.out.println("The month cannot be negative, must be a value [1 - 12]");
        System.out.println("The program will know exit.");
        System.exit(1);
    }
    else if (month == 0) {
    System.out.println("The month cannot be zero, must be a value [1 - 12]");
    System.out.println("The program will know exit.");
    System.exit(1);
    }
    else if (month > 12) {
        System.out.println("The month must be a value [1 - 12]");
        System.out.println("The program will know exit.");
        System.exit(1);
    }
    double hours;
    double savings_1;
    double savings_2;
    double total_1;
    double total_2;
    final double total_1d = 15.95;
    final double total_2d = 20.95;
    final double total_3d = 30.99;
    // USER MENU SWITCH
    switch (choice) {
        case PACKAGE_1:
            if ((month == 1) ^ (month == 3) ^ (month == 5) ^ (month == 7) ^ (month == 8) ^ (month == 10) ^ (month == 12)) {
                System.out.print("Enter the number of hours the plan package was used: ");
                hours = input.nextInt();
                if (hours > 744) {
                    System.out.println("ERROR: The number of hours cannot be higher than 744 on the month selected.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else if (hours < 0) {
                    System.out.println("ERROR: The number of hours cannot be negative.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else {
                    if (hours < 10 && hours >= 1){
                        System.out.println("The cost of your bill is: $15.95");
                    }
                    else if (hours > 10 && hours <= 744) {
                        total_1 = ((hours - 10) * 2) + 15.95;
                        System.out.println("The cost of your bill is: $" + total_1);
                    }
                }
            }
            else if (month == 2) {
                System.out.print("Enter the number of hours the plan package was used: ");
                hours = input.nextInt();
                if (hours > 672) {
                    System.out.println("ERROR: The number of hours cannot be higher than 672 on February.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else if (hours < 0) {
                    System.out.println("ERROR: The number of hours cannot be negative.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else {
                    if (hours < 10 && hours >= 1){
                        System.out.println("The cost of your bill is: $15.95");
                    }
                    else if (hours > 10 && hours <= 672) {
                        total_1 = ((hours - 10) * 2) + 15.95;
                        System.out.println("The cost of your bill is: $" + total_1);
                    }
                }
            }
            else {
                System.out.print("Enter the number of hours the plan package was used: ");
                hours = input.nextInt();
                if (hours > 720) {
                    System.out.println("ERROR: The number of hours cannot be higher than 722 on the month selected.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else if (hours < 0) {
                    System.out.println("ERROR: The number of hours cannot be negative.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
            }
                else {
                    if (hours < 10 && hours >= 1){
                        System.out.println("The cost of your bill is: $15.95");
                    }
                    else if (hours > 10 && hours <= 720) {
                        total_1 = ((hours - 10) * 2) + 15.95;
                        System.out.println("The cost of your bill is: $" + total_1);
                    }
                }
            }
        case PACKAGE_2:
            if ((month == 1) ^ (month == 3) ^ (month == 5) ^ (month == 7) ^ (month == 8) ^ (month == 10) ^ (month == 12)) {
                if (choice == 2) {
                System.out.print("Enter the number of hours the plan package was used: ");
                hours = input.nextInt();
                if (hours > 744) {
                    System.out.println("ERROR: The number of hours cannot be higher than 744 on the selected month.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else if (hours < 0) {
                    System.out.println("ERROR: The number of hours cannot be negative.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else {
                    if (hours < 20 && hours >= 1) {
                        System.out.println("The cost of your bill is: $20.95");
                    }
                    else if (hours > 20 && hours <= 744) {
                        total_2 = (hours - 20) + 20.95;
                        System.out.println("The cost of your bill is: $" + total_2);
                    }
                }
                }
                else {
                    if (hours < 20 && hours >= 1) {
                        System.out.println("The cost of package 2 bill is: $20.95");
                        savings_1 = total_1 - total_2d;
                        System.out.println("You could saved: $" + savings_1); 
                    }
                    else if (hours > 20 && hours <= 744) {
                        total_2 = (hours - 20) + 20.95;
                        System.out.println("The cost of package 2 bill is: $" + total_2);
                        savings_1 = total_1 - total_2d;
                        System.out.println("You could saved: $" + savings_1);
                    }
                }

            else if (month == 2) {
                if (choice == 2) {
                System.out.print("Enter the number of hours the plan package was used: ");
                hours = input.nextInt();
                if (hours > 672) {
                    System.out.println("ERROR: The number of hours cannot be higher than 672 on February.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else if (hours < 0) {
                    System.out.println("ERROR: The number of hours cannot be negative.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else {
                    if (hours < 20 && hours >= 1){
                        System.out.println("The cost of your bill is: $20.95");
                    }
                    else if (hours > 20 && hours <= 672) {
                        total_2 = (hours - 20) + 20.95;
                        System.out.println("The cost of your bill is: $" + total_2);
                    }
                }
                }
                else {
                    if (hours < 20 && hours >= 1) {
                        System.out.println("The cost of package 2 bill is: $20.95");
                        savings_1 = total_1 - total_2d;
                        System.out.println("You could saved: $" + savings_1); 
                    }
                    else if (hours > 20 && hours <= 672) {
                        total_2 = (hours - 20) + 20.95;
                        System.out.println("The cost of package 2 bill is: $" + total_2);
                        savings_1 = total_1 - total_2d;
                        System.out.println("You could saved: $" + savings_1);
                    }
                }
            }
            else {
                if (choice == 2) {
                System.out.print("Enter the number of hours the plan package was used: ");
                hours = input.nextInt();
                if (hours > 720) {
                    System.out.println("ERROR: The number of hours cannot be higher than 722 on the selected month.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
            }
                else if (hours < 0) {
                    System.out.println("ERROR: The number of hours cannot be negative.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else {
                    if (hours < 20 && hours >= 1){
                        System.out.println("The cost of your bill is: $20.95");
                    }
                    else if (hours > 20 && hours <= 720) {
                        total_2 = (hours - 20) + 20.95;
                        System.out.println("The cost of your bill is: $" + total_2);
                    }
                }
                }
                else {
                    if (hours < 20 && hours >= 1) {
                        System.out.println("The cost of package 2 bill is: $20.95");
                        savings_1 = total_1 - total_2d;
                        System.out.println("You could saved: $" + savings_1); 
                    }
                    else if (hours > 20 && hours <= 720) {
                        total_2 = (hours - 20) + 20.95;
                        System.out.println("The cost of package 2 bill is: $" + total_2);
                        savings_1 = total_1 - total_2d;
                        System.out.println("You could saved: $" + savings_1);
                    }
                }
            }
        case PACKAGE_3:
            if ((month == 1) ^ (month == 3) ^ (month == 5) ^ (month == 7) ^ (month == 8) ^ (month == 10) ^ (month == 12)) {
                if (choice == 3) {
                System.out.print("Enter the number of hours you used your plan package: ");
            hours = input.nextInt();
                if (hours > 744) {
                    System.out.println("Enter the number of hours the plan package was used: ");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else if (hours < 0) {
                    System.out.println("ERROR: The number of hours cannot be negative.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else {
                    System.out.println("The cost of your bill is: $30.99");
                }
                }
                else {
                    System.out.println("The cost of package 3 bill is: $30.99");
                    savings_2 = total_1 - total_3d;
                    System.out.println("You could saved: $" + savings_2);
                }
            }
            else if (month == 2) {
                if (choice == 3) {
                System.out.print("Enter the number of hours the plan package was used: ");
                hours = input.nextInt();
                if (hours > 672) {
                    System.out.println("ERROR: The number of hours cannot be higher than 672 on February.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else if (hours < 0) {
                    System.out.println("ERROR: The number of hours cannot be negative.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else {
                    System.out.println("The cost of your bill is: $30.99");
                }
                }
                else {
                    System.out.println("The cost of package 3 bill is: $30.99");
                    savings_2 = total_1 - total_3d;
                    System.out.println("You could saved: $" + savings_2);
                }
            }    
            else {
                if (choice == 3) {
                System.out.print("Enter the number of hours the plan package was used: ");
                hours = input.nextInt();
                if (hours > 720) {
                    System.out.println("ERROR: The number of hours cannot be higher than 720 on the selected month.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else if (hours < 0) {
                    System.out.println("ERROR: The number of hours cannot be negative.");
                    System.out.println("Now the program will exit.");
                    System.exit(1);
                }
                else {
                    System.out.println("The cost of your bill is: $30.99");
                }
                }
                else {
                    System.out.println("The cost of package 3 bill is: $30.99");
                    savings_2 = total_1 - total_3d;
                    System.out.println("You could saved: $" + savings_2);
                }
            }
    }
}
}

编译代码会产生:

HW04P05.java:176: error: variable hours might not have been initialized
                                        if (hours < 20 && hours >= 1) {
                                            ^
HW04P05.java:178: error: variable total_1 might not have been initialized
                                                savings_1 = total_1 - total_2d;
                                                            ^
HW04P05.java:184: error: variable total_1 might not have been initialized
                                                savings_1 = total_1 - total_2d;
                                                            ^
HW04P05.java:214: error: variable hours might not have been initialized
                                        if (hours < 20 && hours >= 1) {
                                            ^
HW04P05.java:216: error: variable total_1 might not have been initialized
                                                savings_1 = total_1 - total_2d;
                                                            ^
HW04P05.java:222: error: variable total_1 might not have been initialized
                                                savings_1 = total_1 - total_2d;
                                                            ^
HW04P05.java:252: error: variable hours might not have been initialized
                                        if (hours < 20 && hours >= 1) {
                                            ^
HW04P05.java:254: error: variable total_1 might not have been initialized
                                                savings_1 = total_1 - total_2d;
                                                            ^
HW04P05.java:260: error: variable total_1 might not have been initialized
                                                savings_1 = total_1 - total_2d;
                                                            ^
HW04P05.java:286: error: variable total_1 might not have been initialized
                                        savings_2 = total_1 - total_3d;
                                                    ^
HW04P05.java:310: error: variable total_1 might not have been initialized
                                        savings_2 = total_1 - total_3d;
                                                    ^
HW04P05.java:334: error: variable total_1 might not have been initialized
                                    savings_2 = total_1 - total_3d;
                                                ^
12 errors

2 个答案:

答案 0 :(得分:0)

您收到错误的原因是代码中的某些执行路径未将值设置为hours。很难看到这个问题,因为您将输入验证与结果计算逻辑混合在一起。

你可以将小时数初始化为0,但我怀疑你的程序仍然按照预期的方式运行。

虽然有很多方法可以解决这个问题,但我建议将代码分成许多较小的部分来单独解决每个问题。这有许多优点,包括能够分别测试每一件,并使其更容易理解,更重要的是,保持每件。

如果您将每个部分分成自己的方法,那么您的主要方法可能如下所示:

public static void main(String[] args) {
    int plan = getPlanFromUser();
    int month = getMonthFromUser();
    int hours = getHoursFromUser(month);
    evaluateSavings(plan, month, hours);
}

然后,为了从用户那里获得计划,您编写了一个名为getPlanFromUser()的方法,该方法检索用户的输入并在返回有效选择之前验证它。

与其他人一样,得到&#39;方法,特殊情况为getHoursFromUser(),您传递月份,以便该方法可以验证输入的正确小时数。

最后,您的evaluateSavings()方法接收所有用户输入(已经过验证)并简单地计算相应的节省。

采用这种方法意味着您只需要解决每种方法中的几个问题,而且您不必同时考虑所有问题。

编辑:此处的代码重组如上所述

import java.util.Scanner;

public class HW04P05 {

    private static final int PACKAGE_1 = 1;
    private static final int PACKAGE_2 = 2;
    private static final int PACKAGE_3 = 3;

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int plan = getPlan(input);
        int month = getMonth(input);
        int hours = getHours(input, month);
        calculateSavings(plan, hours);
    }

    private static int getPlan(Scanner input) {
        // packages menu
        System.out.println();
        System.out.println("[1] Package 1: $15.95 a month for up to 10 hours of service. Additional hours are $2.00 per hour.");
        System.out.println("[2] Package 2: $20.95 a month for up to 20 hours of service. Additional hours are $1.00 per hour.");
        System.out.println("[3] Package 3: $30.99 per month unlimited access.");
        System.out.println();
        System.out.print("Enter [1 - 3] for select your package: ");

        // get input
        int choice = input.nextInt();

        // input validation
        System.out.println(" ");
        if (choice < 0) {
            exitProgram("The menu choice cannot be negative, must be a value [1 - 3]");
        } else if (choice == 0) {
            exitProgram("The menu choice cannot be zero, must be a value [1 - 3]");
        } else if (choice > 3) {
            exitProgram("The menu choice must be a value [1 - 3]");
        }
        return choice;
    }

    private static int getMonth(Scanner input) {
        // month menu
        System.out.println("[1] January   [4] April  [7] July       [10] October");
        System.out.println("[2] February  [5] May    [8] August     [11] November");
        System.out.println("[3] March     [6] June   [9] September  [12] December");
        System.out.println("");
        System.out.print("Enter [1 - 12] for select billed month: ");

        // get input
        int month = input.nextInt();

        // input validation
        if (month < 0) {
            exitProgram("The month cannot be negative, must be a value [1 - 12]");
        } else if (month == 0) {
            exitProgram("The month cannot be zero, must be a value [1 - 12]");
        } else if (month > 12) {
            exitProgram("The month must be a value [1 - 12]");
        }
        return month;
    }

    private static int getHours(Scanner input, int month) {
        // hours menu
        System.out.println(" ");
        System.out.print("Enter the number of hours the plan package was used: ");

        // get input
        int hours = input.nextInt();

        // input validation
        if (hours < 0) {
            exitProgram("ERROR: The number of hours cannot be negative.");
        }
        if ((month ==  1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) && hours > 744) {
            exitProgram("ERROR: The number of hours cannot be higher than 744 on the month selected.");
        }
        if ((month ==  4 || month == 6 || month == 9 || month == 11) && hours > 720) {
            exitProgram("ERROR: The number of hours cannot be higher than 720 on the month selected.");
        }
        if (month == 2 && hours > 672) {
            exitProgram("ERROR: The number of hours cannot be higher than 672 on the month selected.");
        }

        return hours;
    }

    private static void calculateSavings(int plan, int hours) {
        double pricePlan1 = calculatePricePlan1(hours);
        double pricePlan2 = calculatePricePlan2(hours);
        double pricePlan3 = 30.99;

        switch(plan) {
            case PACKAGE_1:
                System.out.println(String.format("The cost of your bill is: $%.2f", pricePlan1));
                if (pricePlan1 > pricePlan2) {
                    System.out.println(String.format("On package 2 you could have saved $%.2f", pricePlan1 - pricePlan2));
                }
                if (pricePlan1 > pricePlan3) {
                    System.out.println(String.format("On package 3 you could have saved $%.2f", pricePlan1 - pricePlan3));
                }
                break;

            case PACKAGE_2:
                System.out.println(String.format("The cost of your bill is: $%.2f", pricePlan2));
                if (pricePlan2 > pricePlan3) {
                    System.out.println(String.format("On package 3 you could have saved $%.2f", pricePlan2 - pricePlan3));
                }
                break;

            case PACKAGE_3:
                System.out.println(String.format("The cost of your bill is: $%.2f", pricePlan3));
                break;
        }
    }

    private static double calculatePricePlan1(int hours) {
        if (hours <= 10) {
            return 15.95;
        }

        return 15.95 + ((hours - 10) * 2);
    }


    private static double calculatePricePlan2(int hours) {
        if (hours <= 20) {
            return 20.95;
        }

        return 20.95 + (hours - 20);
    }

    private static void exitProgram(String reason) {
        System.out.println(reason);
        System.out.println("The program will now exit.");
        System.exit(1);
    }
}

请注意,每种方法都适用于一个页面&#39;并且每个都可以独立地理解和测试。这种方法使其他开发人员更容易理解代码的作用(从而降低维护成本)。

答案 1 :(得分:0)

我重新编码并更改了一些部分,并且我能够按照问题说明运行代码。

&#13;
&#13;
import java.util.Scanner;

public class HW04P05{
  public static void main (String[] args) {
  	// create scanner
	Scanner input = new Scanner(System.in);
	// packages menu
	final String USER_MENU =
		" \n" +
		"[1] Package 1: $15.95 a month for up to 10 hours of service. Additional hours are $2.00 per hour.\n" +
		"[2] Package 2: $20.95 a month for up to 20 hours of service. Additional hours are $1.00 per hour.\n" +
		"[3] Package 3: $30.99 per month unlimited access.\n" +
		" \n" +
		"Enter [1 - 3] for select your package: ";
	final int PACKAGE_1 = 1;
	final int PACKAGE_2 = 2;
	final int PACKAGE_3 = 3;
	System.out.print(USER_MENU);
	int choice = input.nextInt();
	// input validation
	System.out.println(" ");
	if (choice < 0) {
		System.out.println("The menu choice cannot be negative, must be a value [1 - 3]");
		System.out.println("The program will know exit.");
		System.exit(1);
	}
	else if (choice == 0) {
		System.out.println("The menu choice cannot be zero, must be a value [1 - 3]");
		System.out.println("The program will know exit.");
		System.exit(1);
	}
	else if (choice > 3) {
		System.out.println("The menu choice must be a value [1 - 3]");
		System.out.println("The program will know exit.");
		System.exit(1);
	}
	// month menu
	System.out.print("[1] January   [4] April  [7] July       [10] October\n");
	System.out.print("[2] February  [5] May    [8] August     [11] November\n");
	System.out.print("[3] March     [6] June   [9] September  [12] December\n");
	System.out.println(" ");
	System.out.print("Enter [1 - 12] for select billed month: ");
	int month = input.nextInt();
	// input validation
	if (month < 0) {
		System.out.println("The month cannot be negative, must be a value [1 - 12]");
		System.out.println("The program will know exit.");
		System.exit(1);
	}
	else if (month == 0) {
	System.out.println("The month cannot be zero, must be a value [1 - 12]");
	System.out.println("The program will know exit.");
	System.exit(1);
	}
	else if (month > 12) {
		System.out.println("The month must be a value [1 - 12]");
		System.out.println("The program will know exit.");
		System.exit(1);
	}
	// declaring variables
	double hours;
	double savings_1;
	double savings_2;
	double total_1;
	double total_2;
	final double total_1d = 15.95;
	final double total_2d = 20.95;
	final double total_3d = 30.99;
	// switch statement
	switch (choice) {
		case PACKAGE_1:
			// if statement for 31d, 30d, & 28d months
			if ((month == 1) ^ (month == 3) ^ (month == 5) ^ (month == 7) ^ (month == 8) ^ (month == 10) ^ (month == 12)) {
				System.out.println(" ");
				System.out.print("Enter the number of hours the plan package was used: ");
				hours = input.nextInt();
				System.out.println(" ");
				// input validation
				if (hours > 744) {
					System.out.println("ERROR: The number of hours cannot be higher than 744 on the month selected.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else if (hours < 0) {
					System.out.println("ERROR: The number of hours cannot be negative.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else {
					// computing bill costs and savings
					if (hours < 10 && hours >= 1){
						System.out.println("The cost of your bill is: $15.95");
					}
					else if (hours > 10 && hours <= 20) {
						total_1 = ((hours - 10) * 2) + 15.95;
						System.out.println("The cost of your bill is: $" + total_1);
						System.out.println(" ");
						if (total_1 > 20.95) {
						System.out.println("The cost of package 2 bill is: $" + total_2d);
						savings_1 = total_2d - total_1;
						savings_1 = (savings_1 * -1);
						savings_1 = (Math.round(savings_1 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_1 );
						System.out.println(" ");
						    if (total_1 > 30.99) {
							System.out.println("The cost of package 3 bill is: $" + total_3d);
							savings_2 = total_3d - total_1;
							savings_2 = (savings_2 * -1);
							savings_2 = (Math.round(savings_2 * 100)/ 100.0);
							System.out.println("You could have saved: $" + savings_2);
							System.out.println(" ");
							}
					    }
					}
					else{
						total_1 = ((hours - 10) * 2) + 15.95;
						System.out.println("The cost of your bill is: $" + total_1);
						System.out.println(" ");
						total_2 = ((hours - 20) + 20.95);
						System.out.println("The cost of package 2 bill is: $" + total_2);
						savings_1 = total_1 - total_2;
						savings_1 = (Math.round(savings_1 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_1);
						System.out.println(" ");
						System.out.println("The cost of package 3 bill is: $30.99");
						savings_2 = total_1 - total_3d;
						savings_2 = (Math.round(savings_2 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_2);
					}
				}
			}
			else if (month == 2) {
				System.out.println(" ");
				System.out.print("Enter the number of hours the plan package was used: ");
				hours = input.nextInt();
				System.out.println(" ");
				// input validation
				if (hours > 627) {
					System.out.println("ERROR: The number of hours cannot be higher than 672 on the month selected.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else if (hours < 0) {
					System.out.println("ERROR: The number of hours cannot be negative.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else {
					// computing bill costs and savings
					if (hours < 10 && hours >= 1){
						System.out.println("The cost of your bill is: $15.95");
					}
					else if (hours > 10 && hours <= 20) {
						total_1 = ((hours - 10) * 2) + 15.95;
						System.out.println("The cost of your bill is: $" + total_1);
						System.out.println(" ");
						if (total_1 > 20.95) {
						System.out.println("The cost of package 2 bill is: $" + total_2d);
						savings_1 = total_2d - total_1;
						savings_1 = (savings_1 * -1);
						savings_1 = (Math.round(savings_1 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_1 );
						System.out.println(" ");
						    if (total_1 > 30.99) {
							System.out.println("The cost of package 3 bill is: $" + total_3d);
							savings_2 = total_3d - total_1;
							savings_2 = (savings_2 * -1);
							savings_2 = (Math.round(savings_2 * 100)/ 100.0);
							System.out.println("You could have saved: $" + savings_2);
							System.out.println(" ");
							}
						}
					}
					else{
						total_1 = ((hours - 10) * 2) + 15.95;
						System.out.println("The cost of your bill is: $" + total_1);
						System.out.println(" ");
						total_2 = ((hours - 20) + 20.95);
						System.out.println("The cost of package 2 bill is: $" + total_2);
						savings_1 = total_1 - total_2;
						savings_1 = (Math.round(savings_1 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_1);
						System.out.println(" ");
						System.out.println("The cost of package 3 bill is: $30.99");
						savings_2 = total_1 - total_3d;
						savings_2 = (Math.round(savings_2 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_2);
					}
				}
			}
			else {
				System.out.println(" ");
				System.out.print("Enter the number of hours the plan package was used: ");
				hours = input.nextInt();
				System.out.println(" ");
				// input validation
				if (hours > 720) {
					System.out.println("ERROR: The number of hours cannot be higher than 720 on the month selected.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else if (hours < 0) {
					System.out.println("ERROR: The number of hours cannot be negative.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else {
					// computing bill costs and savings
					if (hours < 10 && hours >= 1){
						System.out.println("The cost of your bill is: $15.95");
					}
					else if (hours > 10 && hours <= 20) {
						total_1 = ((hours - 10) * 2) + 15.95;
						System.out.println("The cost of your bill is: $" + total_1);
						System.out.println(" ");
						if (total_1 > 20.95) {
						System.out.println("The cost of package 2 bill is: $" + total_2d);
						savings_1 = total_2d - total_1;
						savings_1 = (savings_1 * -1);
						savings_1 = (Math.round(savings_1 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_1 );
						System.out.println(" ");
						    if (total_1 > 30.99) {
							System.out.println("The cost of package 3 bill is: $" + total_3d);
							savings_2 = total_3d - total_1;
							savings_2 = (savings_2 * -1);
							savings_2 = (Math.round(savings_2 * 100)/ 100.0);
							System.out.println("You could have saved: $" + savings_2);
							System.out.println(" ");
							}
					    }
					}
					else{
						total_1 = ((hours - 10) * 2) + 15.95;
						System.out.println("The cost of your bill is: $" + total_1);
						System.out.println(" ");
						total_2 = ((hours - 20) + 20.95);
						System.out.println("The cost of package 2 bill is: $" + total_2);
						savings_1 = total_1 - total_2;
						savings_1 = (Math.round(savings_1 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_1);
						System.out.println(" ");
						System.out.println("The cost of package 3 bill is: $30.99");
						savings_2 = total_1 - total_3d;
						savings_2 = (Math.round(savings_2 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_2);
					}
				}
			}
		break;	
		case PACKAGE_2:
			if ((month == 1) ^ (month == 3) ^ (month == 5) ^ (month == 7) ^ (month == 8) ^ (month == 10) ^ (month == 12)) {
				System.out.println(" ");
				System.out.print("Enter the number of hours the plan package was used: ");
				hours = input.nextInt();
				System.out.println(" ");
				// input validation
				if (hours > 744) {
					System.out.println("ERROR: The number of hours cannot be higher than 744 on the month selected.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else if (hours < 0) {
					System.out.println("ERROR: The number of hours cannot be negative.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else {
					// computing bill costs and savings
					if (hours < 20 && hours >= 1){
						System.out.println("The cost of your bill is: $20.95");
					}
					else {
						total_2 = ((hours - 10) * 2) + 15.95;
						System.out.println("The cost of your bill is: $" + total_2);
						System.out.println(" ");
						if (total_2 > 30.99) {
						System.out.println("The cost of package 3 bill is: $" + total_3d);
						savings_2 = total_3d - total_2;
						savings_2 = (savings_2 * -1);
						savings_2 = (Math.round(savings_2 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_2);
						System.out.println(" ");
						}
					}
				}			
			}	
			else if (month == 2) {
				System.out.println(" ");
				System.out.print("Enter the number of hours the plan package was used: ");
				hours = input.nextInt();
				System.out.println(" ");
				// input validation
				if (hours > 672) {
					System.out.println("ERROR: The number of hours cannot be higher than 672 on the month selected.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else if (hours < 0) {
					System.out.println("ERROR: The number of hours cannot be negative.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else {
					// computing bill costs and savings
					if (hours < 20 && hours >= 1){
						System.out.println("The cost of your bill is: $20.95");
					}
					else {
						total_2 = ((hours - 10) * 2) + 15.95;
						System.out.println("The cost of your bill is: $" + total_2);
						System.out.println(" ");
						if (total_2 > 30.99) {
						System.out.println("The cost of package 3 bill is: $" + total_3d);
						savings_2 = total_3d - total_2;
						savings_2 = (savings_2 * -1);
						savings_2 = (Math.round(savings_2 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_2);
						System.out.println(" ");
						}
					}
				}
			}
			else {
				System.out.println(" ");
				System.out.print("Enter the number of hours the plan package was used: ");
				hours = input.nextInt();
				System.out.println(" ");
				if (hours > 720) {
					System.out.println("ERROR: The number of hours cannot be higher than 720 on the month selected.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else if (hours < 0) {
					System.out.println("ERROR: The number of hours cannot be negative.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else {
					if (hours < 20 && hours >= 1){
						System.out.println("The cost of your bill is: $20.95");
					}
					else {
						total_2 = ((hours - 10) * 2) + 15.95;
						System.out.println("The cost of your bill is: $" + total_2);
						System.out.println(" ");
						if (total_2 > 30.99) {
						System.out.println("The cost of package 3 bill is: $" + total_3d);
						savings_2 = total_3d - total_2;
						savings_2 = (savings_2 * -1);
						savings_2 = (Math.round(savings_2 * 100)/ 100.0);
						System.out.println("You could have saved: $" + savings_2);
						System.out.println(" ");
						}
					}
				}
			}
		break;
		case PACKAGE_3:
			if ((month == 1) ^ (month == 3) ^ (month == 5) ^ (month == 7) ^ (month == 8) ^ (month == 10) ^ (month == 12)) {
				System.out.println(" ");
				System.out.print("Enter the number of hours the plan package was used: ");
				hours = input.nextInt();
				System.out.println(" ");
				//input validation
				if (hours > 744) {
					System.out.println("ERROR the number of hours cannot be higher than 744 on the selected month.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else if (hours < 0) {
					System.out.println("ERROR: The number of hours cannot be negative.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else {
					System.out.println("The cost of your bill is: $30.99");
				}
			}
			else if (month == 2) {
				System.out.println(" ");
				System.out.print("Enter the number of hours the plan package was used: ");
				hours = input.nextInt();
				System.out.println(" ");
				// input validation
				if (hours > 672) {
					System.out.println("ERROR: The number of hours cannot be higher than 672 on the selected month.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else if (hours < 0) {
					System.out.println("ERROR: The number of hours cannot be negative.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else {
					System.out.println("The cost of your bill is: $30.99");
				}
			}	 
			else {
				System.out.println(" ");
				System.out.print("Enter the number of hours the plan package was used: ");
				hours = input.nextInt();
				System.out.println(" ");
				// input validation
				if (hours > 720) {
					System.out.println("ERROR: The number of hours cannot be higher than 720 on the selected month.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else if (hours < 0) {
					System.out.println("ERROR: The number of hours cannot be negative.");
					System.out.println("Now the program will exit.");
					System.exit(1);
				}
				else {
					System.out.println("The cost of your bill is: $30.99");
				}
			}
	}
 }
}
&#13;
&#13;
&#13;