2017-09-12 2 views
0
def guessing_game():Unit = { 
    println("Welcome to the guessing game!!") 

    val guess_count:Int = 0 
    val answer = Random.nextInt(50) 
    var guess_num = scala.io.StdIn.readLine("Input your guess number > ").toInt 

    while(guess_num != answer || guess_count < 5){ 

====> guess_count += 1 // <============================== 

     var situation = if(guess_num > answer){"Your guess is higher!"}else{"Your guess is lower!"} 
     println(situation) 
     guess_num = scala.io.StdIn.readLine("Input your guess number > ").toInt 
    } 
    if(guess_num == answer){ 
     println("Congratulation....You win!!") 
    }else{ 
     println("You hav run out of guess!") 
    } 

Il dit: Erreur: (16, 25) = valeur + est pas membre d'Int Expression ne convertit pas à l'affectation parce que le récepteur est incessible. guess_count.toInt + = 1Pourquoi je ne peux pas augmenter en scala?

Répondre

3

guess_count est immuable, (val), vous ne pouvez pas le changer. Utilisez var si vous avez besoin de changer la variable.

+0

Merci! Cela fonctionne –

0

Vous pouvez incrémenter dans scala, mais le mauvais est que vous incrémentez et ré assigner la valeur à une variable finale, c'est pourquoi il jette l'erreur, s'il vous plaît changer la déclaration comme ci-dessous alors cela fonctionnera

var guess_count:Int = 0

Merci