2017-10-27 24 views
0

これ以外のこれまでのことはすべて実行できましたが、理由はわかりませんが、最後の行print(x)にはこのエラーUnresolved reference:xがあります。Kotlin未解決の参照の問題

fun main(args:Array<String>) { 

    var liste = IntRange(3,19) 

    var bolundu = 1 

    for (x in liste) 
     for (y in IntRange(2,x)) 
      if (x % y != 0) 
       bolundu = 0 

     if (bolundu == 1) 
      print(x) 
} 

それがために、ループ内の1とxことと一致していない理由を私は、問題が何であるかを理解していませんか?

+1

をあなたの 'X'ループのために一つだけのステートメントが含まれています ' for y'ループ。ループ内に複数のステートメントが必要な場合は '{}'を使います(単一ステートメントループでも中括弧を使用して開始位置と終了位置を明確にすることをお勧めします)。 – Michael

答えて

3

ループ内で評価するステートメントが複数ある場合は、Kotlinで括弧を指定する必要があるため、このようなことが起こります。

実際には、あなたのコードはこの1つのまったく同じです:

代わり
fun main(args:Array<String>) { 
    var liste = IntRange(3,19) 

    var bolundu = 1 

    for (x in liste) { 
     for (y in IntRange(2,x)) { 
      if (x % y != 0) { 
       bolundu = 0 
      } 
     } 
    } 
    if (bolundu == 1) { 
     print(x) 
    } 
} 

、あなたはこのような何かしたい:

fun main(args:Array<String>) { 
    var liste = IntRange(3,19) 

    var bolundu = 1 

    for (x in liste) { 
     for (y in IntRange(2,x)) { 
      if (x % y != 0) 
       bolundu = 0 
     } 
     if (bolundu == 1) 
      print(x) 
    } 
} 
+0

エラーはなくなりましたが、それでも 'x'は印刷されません。 – GLHF

+0

@GLHFあなたはエラーを解決する方法を尋ねた、私はあなたのコードの目的は何かを知ることができません –

+0

うん、私はそれを解決した、答えのおかげで。 – GLHF

関連する問題