我重复了视频课程中的课程并遇到了一个问题,变量未初始化shop。尽管应该根据用户的选择将上述 2 个对象之一分配给它,但在视频教程中,代码编译没有问题,尽管一切都是以相同的方式完成的。问题是什么?
编码:
fun main(){
val moscowCoffeShop = MoscowCoffeShop(100,120,90)
val saintPiCoffeShop = SaintPiCoffeShop(110,130,100)
val shop: CoffeShop
println("Здравствуйте, пожалуйста выберите город:")
println("1. Москва\n2. Санкт-Петербург")
when (readln()) {
"1" -> shop = moscowCoffeShop
"2" -> shop = saintPiCoffeShop
else -> println("Error")
}
println("пожалуйста выберите напиток:")
println("1. Американо\n2. Капучино\n 3. Латте")
when (readln()){
"1"-> shop.makeAmericano()
"2"-> shop.makeCappucino()
"3"-> shop.makeLatte()
else -> println("Error")
}
}

如果在第一个
when中,输入不正确,只显示错误,但不中断程序,那么您的变量shop将进一步未初始化。您需要使用以下方法向函数添加中断return:这样做了
编译器现在不发誓