繁体   English   中英

我的代码不会打印任何内容

[英]my code won't print anything

嘿,所以我在这里有一个代码,旨在以每周和每天的价格为常数,以最优惠的价格提供租车服务。 该代码将采用颜色,租赁类型和天数,但不输出任何内容。 我想念什么吗?

import java.util.*;
import java.util.Scanner;
public class lab3
 {
    public static final char E = 'E';
    public static final int ZERO = 0;
    public static final double ECONOMY_DAILY = 25.5;
    public static final double FULL_DAILY = 39.4;
    public static final double ECONOMY_WEEKLY = 120.5;
    public static final double FULL_WEEKLY = 216.25;
    public static void main (String[] args)
     {
        Scanner Keyboard = new Scanner(System.in);
        Locale locale = Locale.getDefault();
        System.out.println("Enter the color of the vehicle:");
        String color = Keyboard.next();

        System.out.println ("Economy or Full:");
        String Type = Keyboard.next();
        char FirstTypeLetter = Type.toUpperCase()
        .charAt(0); 
        System.out.println("For how many days?");
        int Days = Keyboard.nextInt();
        int Weeks = Days/7;
        int DaysLeftover = Days%7;
        switch (FirstTypeLetter)
        {
            case 'E':
            double Rate1 = Weeks * ECONOMY_WEEKLY;
            double Rate2 = (Weeks * ECONOMY_WEEKLY) + (Days * ECONOMY_DAILY);
            double Rate3 = (Days * ECONOMY_DAILY);
            if ((Rate1 > Rate2)&(Rate1>Rate3))
                            {
                                System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + Rate1);
                                if ((Rate2>Rate1)&(Rate2>Rate3))
                                {
                                    System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + Rate2);
                                }

                                        else if ((Rate3>Rate2) & (Rate3>Rate1))
                                        {
                                            System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + Rate3);
    switch (FirstTypeLetter)
    {
            case 'F':
            double FullRate1 = Weeks * FULL_WEEKLY;
            double FullRate2 = (Weeks * FULL_WEEKLY) + (Days * FULL_DAILY);
            double FullRate3 = (Days * ECONOMY_DAILY);
            if ((Rate1 > Rate2) & (Rate1 > Rate3))
            {
                System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + FullRate1);
            }
            if ((FullRate2 > FullRate1) & (FullRate2 > FullRate3))
            {
                System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + FullRate2);
            }
            else if ((FullRate3 > FullRate1) & (FullRate3 > FullRate2))
            {
                System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + FullRate3);
            }
            break;
            default:
            System.out.println("Try Again!");
        }
    }

您的代码没有意义。

case 'E'您还有另一个开关语句,该语句使用相同的变量,然后在case 'F'进行检查

另外,在使用if语句时,您使用的是&而不是&&

由于您只有EF两种情况,因此建议您使用简单的if陈述

if (FirstTypeLetter == 'E' && Rate1 > Rate2 && Rate1>Rate3)
{
} 

问题是您格式化switch语句的格式不正确。 它看起来应该像这样:

double Rate1 = Weeks * ECONOMY_WEEKLY;
    double Rate2 = (Weeks * ECONOMY_WEEKLY) + (Days * ECONOMY_DAILY);
    double Rate3 = (Days * ECONOMY_DAILY);
    switch (FirstTypeLetter) {
        case 'E':
            if ((Rate1 > Rate2) & (Rate1 > Rate3)) {
                System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + Rate1);
            }
            else if ((Rate2 > Rate1) & (Rate2 > Rate3)){
                System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + Rate2);
            }
            else if ((Rate3 > Rate2) & (Rate3 > Rate1)) {
                System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + Rate3);
            }
            break;
        case 'F':
            double FullRate1 = Weeks * FULL_WEEKLY;
            double FullRate2 = (Weeks * FULL_WEEKLY) + (Days * FULL_DAILY);
            double FullRate3 = (Days * ECONOMY_DAILY);
            if ((Rate1 > Rate2) & (Rate1 > Rate3)) {
                System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + FullRate1);
            }
            else if ((FullRate2 > FullRate1) & (FullRate2 > FullRate3)) {
                System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + FullRate2);
            }
            else if ((FullRate3 > FullRate1) & (FullRate3 > FullRate2)) {
                System.out.println("This is the best rate for a" + " " + color + " " + Type + " vehicle for" + " " + Days + "days:" + FullRate3);
            }
            break;
        default:
            System.out.println("Try Again!");
            break;
       }

这是Java中switch语句的一个很好的例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM