不必放置值2>值1

问题描述 投票:0回答:1

问题:提出一个重复5次并在其中加载3个整数值的结构。仅累积三个值的每个列表中的最大值。

我有一个问题,因为在本练习中没有必要将值2>值1放在第二行。

fun main(parametro: Array<String>) {
var suma = 0
for(i in 1..5) {
    print("Ingrese primer valor:")
    val valor1 = readLine()!!.toInt()
    print("Ingrese segundo valor:")
    val valor2 = readLine()!!.toInt()
    print("Ingrese tercer valor:")
    val valor3 = readLine()!!.toInt()
    suma += when {
        valor1 > valor2 && valor1 > valor3 -> valor1
        valor2 > valor3 -> valor2
        else -> valor3
    }
}
println("El valor acumulado de los mayores de cada lista de 3 valores es : $suma")

}

android-studio kotlin intellij-idea kotlin-coroutines control-flow
1个回答
0
投票
valor1 > valor2 && valor1 > valor3 -> valor1
  • 如果所有三个值都是不同的,那么当且仅当valor1是最高值时,才为真。
  • 如果valor1等于或小于valor2或valor3(或两者),则为false
valor2 > valor3 -> valor2
  • 如果第1行为假,则valor1必须为<= valor2或valor3(或两者)。
  • 然后,如果valor2> valor3,它也是> valor1(因为在第1行中进行了检查)
  • 如果valor2 == valor3,那么它们中的任何一个必须为> = valor1,否则Line1应该为true。

剩下的就是valor1可能是== valor3,在这种情况下,“返回” valor1或valor3都没有关系。仅当valor2大于valor1和3时,Line1才为false,Line2为true。]

© www.soinside.com 2019 - 2024. All rights reserved.