-1

私はJavaにかなり慣れていないので、このコードがコンパイルされない理由がわかりません。また、結果が返されないこともあります。助言がありますか?

public static char isPrime(int x)
        {

            for(int y=2;y<x;y++)
                char result = 'r';
                    if(x%y==0)
                    result = 't';
                    else
                    result = 'f';

            return result;
        }

また

public static char isPrime(int x)
        {
            char result = 'r';
            for(int y=2;y<x;y++)

                    if(x%y==0)
                    result = 't';
                    else
                    result = 'f';

            return result;
        }
4

3 に答える 3

0

for ステートメントまたは if ステートメントの後の中かっこはオプションですが、行の直後にステートメントを 1 つだけ含めることができます。

最初のケースでresultは、 のスコープでのみ定義されforます。他の場所で参照しようとすると、存在しません (スコープの問題につながります)。

2 番目のケースは、驚くべきことに機能します。for または if に続く各ステートメントは、独自のステートメントです。

ただし、読みやすさと信頼性のために、for ステートメントと if ステートメントを中括弧で囲むことを強くお勧めします。そうしないと、コードが非常に脆弱になります。

于 2013-05-02T15:28:14.810 に答える