2013-10-09 81 views
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)來得到一個 return(string)和return(int)? 我想這回0(INT)變成返回None(字符串)*/是否有可能在同一個方法中使用(string,int)來得到一個return(string)和return(int)?

+1

Java方法只能有一個返回值。 –

+0

這樣的問題和挑戰使我想到Ruby,Perl,Lua,Python等如何從函數返回項目列表。而且,從Java函數返回一個對象列表可以很好地解決這個問題,但會導致更多的工作處理結果。 – ChuckCottrill

回答

4

你不能有兩個返回值從同樣的方法,但你可以:

  1. 返回String.valueOf(int),或
  2. 返回同時包含Stringint
+0

+1「返回一個包含int和string的元組」,儘管我會建議返回一個異構的對象列表;-) – ChuckCottrill

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)。

+0

我不確定你的第二個選項將如何在Java中以你想要的方式工作。你測試過了嗎? – Josh

+0

你說得對,我沒有通過任何參考。我把它混在了W/C++中。我會修改我的答案。謝謝。 – pscuderi

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"); 
} 
0

如果你願意返回類型妥協,你可以返回值的一個HashMap您需要

相關問題