0

与えられた:

11. public static void test(String str) {
12. int check = 4;
13. if (check = str.length()) {
14. System.out.print(str.charAt(check -= 1) +", ");
15. } else {
16. System.out.print(str.charAt(0) + ", ");
17. }
18. }
and the invocation:
21. test("four");
22. test("tee");
23. test("to");

結果はどうなりますか?

A. r, t, t,
B. r, e, o,
C. Compilation fails.
D. An exception is thrown at runtime.
Answer: C

コンパイルが失敗する理由を説明してください。

4

3 に答える 3

2
if (check = str.length())

上記の式は、if次と同等の割り当てです。-

if (str.length())

したがって、式はinteger値に評価されます。これはコンパイルエラーです。ifステートメントの式は。のboolean値に評価される必要があるためですJava

したがって、ifステートメントは次のように記述する必要があります。

if (check == str.length())

正常にコンパイルするために。

于 2012-11-29T16:59:53.817 に答える
1

コンパイル エラーは、iecheck = str.length()内のこのステートメントが原因です。その割り当てであり、比較ではありません。ステートメントは、最終評価が であると想定しています。ifif (check = str.length()) Ifboolean

正しいステートメントは、比較==演算子を使用して次のようになります。

           if (check == str.length())
于 2012-11-29T17:01:18.197 に答える
1

13行目は次のようになります

if (check == str.length()) {
于 2012-11-29T17:02:26.637 に答える