코틀린 질문 입니다.

조회수 1919회

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    but1.setOnClickListener(){

        var random: Random? = null
        var number: Int = random!!.nextInt(6)

        when(number){
            1 -> Toast.makeText(this, "1입니다.",Toast.LENGTH_SHORT).show()
            2 -> Toast.makeText(this, "2입니다.",Toast.LENGTH_SHORT).show()
            3 -> Toast.makeText(this, "3입니다.",Toast.LENGTH_SHORT).show()
            4 -> Toast.makeText(this, "4입니다.",Toast.LENGTH_SHORT).show()
            5 -> Toast.makeText(this, "5입니다.",Toast.LENGTH_SHORT).show()
            6 -> Toast.makeText(this, "6입니다.",Toast.LENGTH_SHORT).show()

        }

    }

}

}

제가 1~6까지의 수에서 random클래스를 사용해 버튼을 클릭 할 때 마다 어떤 난수가 생성 되었는지 Toast로 출력받는 앱을 만들려고 하는데 버튼 클릭시 오류가 납니다. 코드상에는 오류가 없고 에뮬레이터에서 버튼 클릭시 앱이 꺼지는 오류가 발생하는데 코드중에 잘못된게 있나요??

참고로 레이아웃에 버튼 ID는 but1을 부여했습니다.

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기
    var random: Random? = null
    var number: Int = random!!.nextInt(6)    
    

    random!! <-- 이 표현은 해당 변수가 null일수도 있는 타입이지만 null이 아니니까 그냥 신경쓰지 말고 실행하라는 뜻입니다. 바로 위에서 random을 null이라고 선언했는데 null 아니니까 강제로 실행하라고 하면 실행시에 오류가 날 수 밖에 없습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)