2017-10-25 1 views
-2

なぜ条件が満たされていない場合に戻り値-1を取得できないのですか?なぜ条件が満たされていないときに-1の戻り値を取得できないのですか?

あなたが関数に等しい変数を設定するか、それは次のように引数だとして機能してプリントをシステムを実行する必要があり
package calcfeetandinchestocm; 

public class Calcfeetandinchestocm { 

    public static void main(String[] args) { 
     calcFeetAndInchesToCentimeters(4, 12); 

     calcFeetAndInchesToCentimeters(-0.5); 
    } 

    public static int calcFeetAndInchesToCentimeters(double feet, double inches) { 

     if (feet >= 0) { 
      System.out.println("feet are " + feet + \ 
           " and its equal centimeters are " + feet * 12); 

     } 

     if (inches >= 0 && inches <= 12) { 
      System.out.println("inches are " + inches + \ 
           "and its equal centimeters are " + inches * 2.45); 
     } 

     return -1; 
    } 

    public static int calcFeetAndInchesToCentimeters(double inches) { 
     if (inches >= 0) { 
      System.out.println("inches are " + inches + \ 
          "and its equal centimeters are " + inches * 2.45); 
     } 
     return -1; 
    } 

} 
+2

あなたは戻り値を無視しているので、どのようにあなたが取得されていません知っています-1? – John3136

+0

戻り値は決してチェックしていません。入力が悪いときにどのような振る舞いをしたいですか?ところで、1フィートは12センチメートルに等しくありません:-) –

+0

はい!それは間違っている。これは12フィートと等しい1フィートになることを意味していた –

答えて

0

:ここにあなたのコード内で

System.out.print(calcFeetAndInchesToCentimeters(4, 12)); 

または

x = calcFeetAndInchesToCentimeters(4, 12); 
System.out.print(x); 
+0

ありがとうございました!助けてください –

+0

問題はありません、あなたは答えとしてそれを受け入れることができますか? – TacoWilson

+0

これは完全な答えではありません。 –

0

それは条件に依存しないので、どちらかの条件が真または偽の場合は常に-1を返します。したがって、関数から戻り値を取得する必要があります。同様に、

int result = calcFeetAndInchesToCentimeters(4, 12); 
System.out.println("Result is " + result); 

必ず-1を印刷します。

1

まず質問にお答えします。

条件が満たされない場合、戻り値-1を取得できないのはなぜですか?

メソッド呼び出しの結果を変数に代入しないため、-1を取得していないことをどのように認識しているかは不明です。実際には、あなたが書いたメソッドは、常に -1を返します。これは、メソッド本文内に唯一のリターンステートメントであるためです。

あなたはこのような変数に結果を代入した場合:

    int centimeters = calcFeetAndInchesToCentimeters(4, 12); 
    System.out.println("4 feet 12 inches converted to centimeters is: "+centimeters); 
    

    コールを上記System.out.printlnに出力4 feet 12 inches converted to centimeters is: -1

    あなたのコードと他のいくつかの問題がありますでしょう

  1. 変換結果が正しく計算されていません。
  2. 最初のメソッドと同じ名前の2番目のメソッドがありますが、最初のメソッドでロジックの一部を繰り返しています。

は#1に対応するために - 1足は30.48センチメートルあるので、明らかにこのラインが間違っている:

System.out.println("feet are " + feet + \ 
          " and its equal centimeters are " + feet * 12); 

はさらに1インチが2 4センチメートルあるので、あなたの他の計算も正しくありません。

System.out.println("inches are " + inches + \ 
          "and its equal centimeters are " + inches * 2.45); 

私は初めに言ったことの後にはっきりとしていると思いますが、あなたがしたいと思っている計算結果を返すこともありません。足をセンチメートルとインチにセンチメートルに変換してから、その2つの結果の合計を戻す必要があります。

#2にアドレスするには、2番目の方法は、おそらくfeetパラメータを取らないので、同じ名前ではないはずです。このような

何かより正確な次のようになります。このメソッドの内部

public static int calcInchesToCentimeters(double inches)

あなたはすでに以前のコードで書かれているロジックを繰り返してはならない、代わりに同じように0であなたの最初のメソッドを呼び出します足の数とインチの数を渡す。

public static int calcInchesToCentimeters(double inches){ 
    return calcFeetAndInchesToCentimeters(0, inches); 
} 

最後にさらにいくつかの読書は、私はあなたのためにお勧めします:

Java Tutorial: Returning a Value from a Method

The DRY Principle

関連する問題