2016-09-07 1 views
-7

//なぜこのプリントを印刷しないのですか?どのような他の機能を使用できますか?この機能でシステムはこれを印刷しませんか?

public class Exercise { 

    private static int x = 12; 
    private static int y = 28; 
    private static double z = 3.3; 

    public static void main(String[] args) { 
    System.out.println("The answer to(x * y)/3"); 
    calculate(); 
    } 

    private static double calculate() { 
    double you = (x * y)/z; 
    return you; 
    System.out.println("you"); 
    } 
} 
+8

それはコンパイルされません'System.out.println(" you ");は到達不能で、return文の後ろにあるためです。あなたのコンパイラはこれをあなたに伝えます。 –

+0

Imが失われ、このヌーブが – Johnny

答えて

0

private static double calculate() { 
    double you = (x * y)/z; 
    return you; 
    System.out.println("you"); 
} 

のSystem.out.println文は、return文の後です。これは「到達不能」コードとみなされ、実行されません。 printステートメントをreturnステートメントの上に置きます。あなたが探しているものを

+2

「実行されません」はい、より強く[コンパイル*されません](https://docs.oracle.com/javase/specs/jls/se8/html) /jls-14.html#jls-14.21)。 –

3

は、より多くのこのようなものです:他の人が言ったように

public class Exercise { 

    private static int x = 12; 
    private static int y = 28; 
    private static double z = 3.3; 

    public static void main(String[] args) { 
     double result = calculate(); 
     System.out.println("The answer to (x * y)/z is " + result); 
    } 

    private static double calculate() { 
     double you = (x * y)/z; 
     System.out.println("you = " + you); 
     return you; 
    } 
} 

は、returnメソッド(条件付きで囲まれていない限り)の最後の命令でなければなりません。 また、"you"の印刷は、変数youの印刷と同じではありません。

0

1.このコードはコンパイルされません。戻り値はコンパイラが停止するステートメントを探しているため、復帰後の最後のステートメントは関数の最後のステートメントでなければなりません。

2.printlnメソッドでは、 "YOU"が変数YOUの代わりに渡されました。 printlnは "you"を文字列として受け取ります。あなたのSystem.out.行う別の方法前のメソッドから戻ってきている

public class Exercise { 

private static int x = 12; 
private static int y = 28; 
private static double z = 3.3; 

public static void main(String[] args) { 
System.out.println("The answer to(x * y)/3"); 
calculate(); 

} 

private static double calculate() { 
double you = (x * y)/z; 
System.out.println("you" +you); // pass variable you instead of "you" 
return you; 


} 
} 

出力 -

The answer to(x * y)/3 
    you 101.81818181818183 
0

をBE-ます 正しいコードは、これは次のようになります。

public class Exercise { 

    private static int x = 12; 
    private static int y = 28; 
    private static double z = 3.3; 

    public static void main(String[] args) { 
    System.out.println("The answer to(x * y)/3 = "+ calculate()); 
    } 

    private static double calculate() { 
    return (x * y)/z; 
    } 
} 
関連する問題