0

kotline program showing "Unhandled Exception: Input string was not in a correct format."

I don't know what's wrong with this code can anyone tell me why it's showing an error code: fun main(args: Array<String>) { var ComputersChoice="" var PlayerChoice="" var RandomNumber=(1..3).random() if(RandomNumber==1){ ComputersChoice="ROCK" }else if(RandomNumber==2){ ComputersChoice="PAPER" }else{ ComputersChoice="SCISSORS" } println("\nEnter Your Choice: ROCK,PAPER,or,SCISSORS") PlayerChoice=readln().uppercase() if(ComputersChoice==PlayerChoice) { println("it's Draw *----*") }else if(ComputersChoice=="ROCK" && PlayerChoice=="SCISSORS" || ComputersChoice=="PAPER" && PlayerChoice=="ROCK" || ComputersChoice=="SCISSORS" && PlayerChoice=="PAPER"){ println("You Lost -_-") }else{ println("You Won :)") } }

18th Oct 2024, 10:44 AM
Abhishek Shelar
Abhishek Shelar - avatar
3 ответов
+ 4
readLine() instead of readln()
18th Oct 2024, 11:18 AM
Lisa
Lisa - avatar
+ 2
Change your input line like this: PlayerChoice=readLine()?.uppercase() ?: ""
18th Oct 2024, 11:23 AM
Jerry Hobby
Jerry Hobby - avatar
+ 1
Sololearn does not recognize readln. Also, I added some more input validation fun main(args: Array<String>) { var computer="SCISSORS" val default = "ROCK" var rNumber=(1..3).random() if(rNumber==1) computer="ROCK" else if(rNumber==2) computer="PAPER" println("\nEnter Your Choice: ROCK,PAPER,or,SCISSORS") // use null safe ? and elvis operator ?: to provide default if nothing is entered var player = readLine()?.uppercase()?:default //check if user entered valid string if(player !in arrayOf("ROCK","PAPER","SCISSORS")) player = default print("\nPlayer ${player}\nComputer ${computer}\n\n") if(computer==player) println("it's Draw *----*") else if( computer=="ROCK" && player=="SCISSORS" || computer=="PAPER" && player=="ROCK" || computer=="SCISSORS" && player=="PAPER" ) println("You Lost -_-") else println("You Won :)") }
19th Oct 2024, 12:19 AM
Bob_Li
Bob_Li - avatar