2017-10-27 2 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) 
} 

가 for 루프에서 하나 그 x 일치하지 않는 이유는, 문제가 무엇인지 이해하지?

+1

귀하의'x' 루프는 단 하나의 문이 포함 된 경우 :' for y' loop. 루프 내에서 여러 개의 명령문을 원한다면'{}'를 사용하십시오 (단일 명령문 루프에 대해서도 중괄호를 사용하여 시작과 끝의 위치를 ​​명확히하는 것이 좋습니다). – Michael

답변

3

루프 내에서 평가할 문이 두 개 이상인 경우 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) 
    } 
} 

: 사실

, 당신의 코드는 정확히 하나의 동일

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