Kotlin 是否不可能将'repeat()'和'while()'组合起来循环3次?
我是科特林的新手。如何将Kotlin 是否不可能将'repeat()'和'while()'组合起来循环3次?,kotlin,Kotlin,我是科特林的新手。如何将repeat()和while()组合成循环?我知道如何使用以下两种方法进行循环: //方法1 对于(1..3中的i){ fortune=getFortune(getbirth()) println(“\n您的财富是:$fortune”) 如果(财富包含(“放松”)打破; } //方法2 var fortune:String=“” 变量i:Int=0//i=0 而(!fortune.contains(“放轻松”)&&i 4 28, 31 -> 2 else->birthd
repeat()
和while()
组合成循环?我知道如何使用以下两种方法进行循环:
//方法1
对于(1..3中的i){
fortune=getFortune(getbirth())
println(“\n您的财富是:$fortune”)
如果(财富包含(“放松”)打破;
}
//方法2
var fortune:String=“”
变量i:Int=0//i=0
而(!fortune.contains(“放轻松”)&&i 4
28, 31 -> 2
else->birthday.rem(财富.大小)
}
回归财富[指数]
}
我不完全理解您试图实现的目标,但我认为您是说您希望执行循环,直到:
fortune
字符串包含“放轻松”,或:repeat
循环中使用break
语句是可能的,因此您需要执行以下操作:
fun main(args: Array<String>) {
var fortune: String
for (i in 1..3) {
fortune = getFortune(getBirthday())
println("\nYour fortune is: $fortune")
if (fortune.contains("Take it easy")) {
break
}
}
}
fun main(args:Array){
财富:字符串
对于(1..3中的i){
fortune=getFortune(getbirth())
println(“\n您的财富是:$fortune”)
如果(fortune.contains(“放轻松”)){
打破
}
}
}
这将执行循环最多三次,但如果
fortune
包含“放轻松”,它可能会提前退出.将两者结合起来使其循环3次是没有意义的。您可以使用其中一个。当您这样嵌套循环时,就像将它们相乘。外部的重复3次,因此内部的while
循环将从一开始就循环3次。但是,在您的示例中,您退出循环的ur标准将在第二次两次时立即满足,因此后续运行不会有输出
基本上,如果您有一个重复的操作,但您有多个完成该操作的条件,那么解决方案不是添加另一个循环,而是必须添加退出该循环的附加逻辑
由于repeat
不是一个关键字,而是一个高阶函数,因此退出循环更为复杂,这样做会使代码难以阅读。因此,如果您有提前退出循环的任何条件,我不建议使用repeat
。要提前退出循环,您必须在运行中进行包装
scope函数,以便您可以从该scope函数返回以中断循环:
fun main(args: Array<String>) {
var fortune: String = ""
run loop@{
repeat(3) {
if (fortune.contains("Take it easy")) {
return@loop
}
fortune = getFortune(getBirthday())
println("\nYour fortune is: $fortune")
}
}
}
fun main(args:Array){
var fortune:String=“”
运行循环@{
重复(3){
如果(fortune.contains(“放轻松”)){
return@loop
}
fortune=getFortune(getbirth())
println(“\n您的财富是:$fortune”)
}
}
}
如果你想早点突破,使用for
循环要比使用repeat
简单得多,如@sweedflow的回答所示,因为你可以使用break
关键字。你到目前为止尝试了什么?你在哪里卡住了?你说“重复这个while循环3次”是什么意思?看起来你已经限制了3圈。你想重复整个过程3次吗?你们太棒了。这是我第一次在这里问问题,所以我有点慢。我重写了我的问题。请再看一次我的问题!!请分享更多细节-你想实现什么?什么还不起作用?我还不完整我确信我理解,但这里有一个猜测:如果你很棒,请将while
更改为。这是我第一次在这里问问题,所以我写得不够清楚。我已经知道如何使用for循环,但我不知道如何组合repeat()和while loop。请再看一次我的问题!!你正确理解了我的目标。谢谢你的回答,你可以从我的问题中看到,你的方法与我的方法1相同。从我问题的主题中,你可以看到我想要结合repeat()和while来实现我的目标。不可能使用repeat()吗为了实现我的目标,你准确地指出了我的问题。非常感谢!我不知道我只能使用repeat()和while()中的一个。虽然我的代码不会立即满足第二个两次,并且在满足我的标准之前,会有后续运行的输出。内部while()循环将继续运行,直到满足我的标准,因此重复(3)变得毫无意义。我感谢你花时间回答我的问题。既然你花了时间,你一定认为我的问题有价值。请你投票表决这个问题好吗?这个问题将来也会对其他人有利。我觉得你的问题对我来说很好。我想可能有人投票否决了你的问题,因为你的ar是一个边缘NSFW,这是一个主要用于专业设置的网站。
fun main(args: Array<String>) {
var fortune: String
for (i in 1..3) {
fortune = getFortune(getBirthday())
println("\nYour fortune is: $fortune")
if (fortune.contains("Take it easy")) {
break
}
}
}
fun main(args: Array<String>) {
var fortune: String = ""
run loop@{
repeat(3) {
if (fortune.contains("Take it easy")) {
return@loop
}
fortune = getFortune(getBirthday())
println("\nYour fortune is: $fortune")
}
}
}