0
           import java.util.Scanner;
           public class Return {

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

                             }
                  public static void inputTest(){
                      System.out.println("From Digit (9635)");
                      System.out.print("Enter a Digit: ");
                      int number = input.nextInt();
                      System.out.println(Digit(number));

                             }

                 public static int Digit(int number) {
                      if (number == 1) {
                        System.out.print("The 4th number in the argument is =\t"); 
                        return 5; 
                    } else if (number == 2) {     
                        System.out.print("The 3rd number in the argument is =\t");  
                        return 3;
                    } else if (number == 3) {
                            System.out.print("The 2nd number in the argument is =\t"); 
                        return 6;
                    } else if (number == 4) {
                        System.out.print("The 1st number in the argument is =\t"); 
                        return 9;
                    } else {
                        System.out.print("Sorry! That's not part of the argument =\t"); 
                            **return 0;**
                     }
                 }
           }

/* 是否可以在同一个方法中使用 (string, int) 来获取返回 (string) 和返回 (int)??我希望那个 return 0(int) 变成 return none(String) */

4

4 回答 4

4

您不能有来自同一方法的两个返回值,但您可以:

  1. 返回String.valueOf(int),或
  2. 返回一个包含 aString和 an的自定义对象int
于 2013-10-09T02:07:29.343 回答
1

您有 2 个选项:

1) 使用具有 2 个属性的返回对象,例如 Apache Pair。见http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/tuple/Pair.html

2) 传入一个对象(例如,StringBuilder)并让该对象存储您的返回值之一(例如,StringBuilder.append)。

于 2013-10-09T02:10:32.480 回答
0

你不能这样做。方法:

public static int Digit(int number){
 ...
}

必须返回指定的整数。

但是您可以在返回值后将其更改为字符串(即在您的 inputTest 方法中)

public static void inputTest(){
    System.out.println("From Digit (9635)");
    System.out.print("Enter a Digit: ");
    int number = input.nextInt();
    int digit = Digit(number);
    if(digit!=0)
        System.out.println(digit);
    else
        System.out.println("none");
}
于 2013-10-09T02:11:56.867 回答
0

如果您愿意在返回类型上做出妥协,则可以返回所需值的 HashMap

于 2013-10-09T03:35:05.523 回答