如何只打印出方法的返回值?

时间:2013-12-31 14:36:25

标签: java

我有一个家庭作业,我应该写几个方法(例如,提示客户购买汽车类型并返回有效汽车类型的方法)然后我的程序应该显示汽车类型,租车天数for,extras等。这是老师要我写的第一种方法,

public static String promptForCarType(){
        Scanner input = new Scanner(System.in);
        char type;
        System.out.println("(E) Economy  - 50 TL");
        System.out.println("(M) Midsize  - 70 TL");
        System.out.println("(F) Fullsize - 100 TL");
        do{
            System.out.println("Enter the car type (E/M/F) : ");
            type = input.next().charAt(0);
            type = Character.toUpperCase(type);
        } while (type != 'E' && type != 'M' && type != 'F' ); //I tried to define condition with "||" operator,didn't work.


        switch(type) {
            case 'E' : ;return "Economy";             
            case 'M' : return "Midsize";
            case 'F' : return "Fullsize";
            default : return " ";

        }


    }

如何只打印出此方法的返回值?我应该在promptForCarType()中添加System.out.println(“Car type is ...”)部分吗?

5 个答案:

答案 0 :(得分:5)

代码控件在遇到关键字返回时会返回到调用函数。因此,您只能在当前方法中操作,直到程序到达关键字返回。因此,如果您需要打印某些东西,请在返回之前打印。在您的情况下,您需要在switch语句构造中打印值,对于返回语句之前的每种情况。

 switch(type) {
        case 'E' : System.out.println("Economy");
                   return "Economy";             
       // similarly for each switch case.
    }

或者,更好的方法是将汽车类型分配给String类型的变量,然后打印该值。并为整个方法编写一个通用的return语句(适用于所有情况)。

   String carType;
   switch(type) {
        case 'E' : carType ="Economy";
       // similarly for each switch case.
    }
    System.out.println(carType);
    return carType;

答案 1 :(得分:1)

  1. 从主要方法中调用您的方法
  2. 将返回的值分配给变量
  3. 打印该变量

    String carType = promptForCarType(); //1 + 2
    System.out.println(carType); //3
    
  4. 或者只是

    System.out.println(promptForCarType());
    

答案 2 :(得分:0)

如果要打印汽车类型的实例,只需转到main方法并打印汽车的被调用实例,访问方法promptForCar。例如:System.out.println(object.method);

答案 3 :(得分:0)

String carType = promptForCarType();
System.out.println("Car type is: " + carType);

应该有效。 promptForCar()的返回值存储在字符串carType中,然后print语句使用字符串变量来打印返回值。 `

答案 4 :(得分:0)

您可以从无限循环(并简化代码)返回,如此 -

public static String promptForCarType() {
    Scanner input = new Scanner(System.in);
    char type;
    for (;;) {
        System.out.println("(E) Economy  - 50 TL");
        System.out.println("(M) Midsize  - 70 TL");
        System.out.println("(F) Fullsize - 100 TL");
        System.out.println("Enter the car type (E/M/F) : ");
        type = input.next().charAt(0);
        type = Character.toUpperCase(type);
        switch (type) {
        case 'E':
            return "Economy";
        case 'M':
            return "Midsize";
        case 'F':
            return "Fullsize";
        }
    }
}