Primeros pasos con Kotlin: control lógico de programas——03

1. Control lógico del programa

        Hay tres tipos principales de declaraciones de ejecución de programas: declaraciones secuenciales, declaraciones condicionales y declaraciones de bucle.

2. si declaración condicional

        si la expresión se usa en Kotlin para ejecutar diferentes bloques de código según las condiciones. Tiene dos formas: if ordinario y if con valor de retorno.

 Declaración ordinaria if:

        Una declaración if ordinaria ifconsta de palabras clave, una expresión booleana y un bloque de código. Si la expresión booleana es verdadera, se ejecuta el bloque de código; de lo contrario, se omite el bloque de código.

val x = 10
if (x > 5) {
    println("x大于5")
} else {
    println("x小于等于5")
}

si expresión con valor de retorno: 

        Si las expresiones con valores de retorno se pueden usar para simplificar el código. Consta de palabras clave if, una expresión booleana, un valor de retorno (rama verdadera) y un valor de retorno (rama falsa). Devuelve un valor basado en el resultado de una expresión booleana.

val x = 10
val result = if (x > 5) "x大于5" else "x小于等于5"
println(result)

Si con retorno en función: 

fun largerNumber(num1: Int, num2: Int) = if (num1 > num2) num1 else num2

3. cuando expresión: 

         La expresión when es similar a una declaración de cambio y puede ejecutar diferentes bloques de código según diferentes condiciones. Tiene dos formas: cuando ordinario y cuando con valor de retorno . La sintaxis es: valor coincidente -> {lógica de ejecución}

 Ordinario cuando declaración:

         Una declaración when ordinaria whenconsta de palabras clave, un valor que debe coincidir y varias ramas. Cada rama contiene uno o más valores, y cuando el valor que debe coincidir es igual a uno de los valores de la rama, se ejecuta el bloque de código correspondiente.

val x = 2
when (x) {
    1 -> println("x等于1")
    2 -> println("x等于2")
    else -> println("x不等于1和2")
}

Cuando expresión con valor de retorno:

        Cuando las expresiones con valores de retorno se pueden utilizar para simplificar el código. Consta de palabras clave when, un valor que debe coincidir y varias ramas. Cada rama contiene uno o más valores y puede haber una rama especial elseque maneje otros casos no coincidentes. 

fun getScore(name: String) = when (name) {
 "Tom" -> 86
 "Jim" -> 77
 "Jack" -> 95
 "Lily" -> 100
 else -> 0
}

Tipo de coincidencia:

fun checkNumber(num: Number) {
 when (num) {
 is Int -> println("number is Int")
 is Double -> println("number is Double")
 else -> println("number not support")
 }

        En el código anterior, la palabra clave is es el núcleo de la coincidencia de tipos, que es equivalente a la palabra clave instancia de Java.

No pase parámetros en la declaración cuando:

fun getScore(name: String) = when {
 name == "Tom" -> 86
 name == "Jim" -> 77
 name == "Jack" -> 95
 name == "Lily" -> 100
 else -> 0
}

         Tenga en cuenta que en Kotlin, puede usar directamente la palabra clave == para determinar si cadenas u objetos son iguales, en lugar de llamar al método equals() como Java.

 Otros usos:

        Supongamos que todas las personas cuyos nombres comienzan con Tom tienen una puntuación de 86. Este escenario no se puede realizar si se escribe con una declaración cuando con parámetros, pero se puede escribir así usando una declaración cuando sin parámetros. Ahora, no importa lo que pases, independientemente Independientemente de si el nombre de la persona es Tom o Tomy, siempre que el nombre comience con Tom, su puntuación es 86 puntos. 

fun getScore(name: String) = when {
 name.startsWith("Tom") -> 86
 name == "Jim" -> 77
 name == "Jack" -> 95
 name == "Lily" -> 100
 else -> 0
}

4. Declaraciones de bucle

        Las declaraciones de bucle de Kotlin incluyen bucle for, bucle while y bucle do- while.

en bucle:

Iterar desde una colección o matriz: 

        El bucle for se utiliza para iterar sobre una colección o matriz y procesar los elementos uno por uno. Su sintaxis básica es la siguiente:

val numbers = arrayOf(1, 2, 3, 4, 5)
for (number in numbers) {
    println(number)
}

        En el ejemplo anterior, iteramos sobre una matriz de números enteros e imprimimos cada elemento. 

RangePara especificar un bucle:

        El rango de val range = 0..10 es [0, 10].

fun main() {
 for (i in 0..10) {
 println(i)
 }
}

Utilice un bucle for-in para iterar sobre el rango:

        rango val = 0 hasta 10, su expresión matemática es [0, 10). Instrucciones: Cerrar a la izquierda y abrir a la derecha .

fun main() {
 for (i in 0 until 10) {
 println(i)
 }
}

Combine stepfunciones para especificar el tamaño del paso del bucle:

fun main() {
 for (i in 0 until 10 step 2) {
 println(i)
 }
}

abajoA palabra clave:

fun main() {
 for (i in 10 downTo 1) {
 println(i)
 }
}

           Aquí creamos un intervalo descendente de [10, 1].

bucle while y bucle do- while: 

        Los bucles while y do- while se utilizan para ejecutar repetidamente un bloque de código según una condición.

        El bucle while primero verificará si la condición es verdadera; de ser así, ejecutará el bloque de código y luego verificará la condición nuevamente. Si la condición es falsa, se omite el bloque de código.

var i = 0
while (i < 5) {
    println(i)
    i++
}

        El ciclo do- while primero ejecuta el bloque de código una vez y luego verifica la condición. La ejecución solo continuará si la condición es verdadera. 

var i = 0
do {
    println(i)
    i++
} while (i < 5)

        En los dos ejemplos anteriores, generamos números del 0 al 4 a través de bucles. 

 5. Proceso del ciclo de control:

Kotlin proporciona varias palabras clave para controlar el flujo del bucle:

  • continue: Se utiliza para omitir la iteración actual del bucle e ir directamente a la siguiente iteración.
  • break: Se utiliza para salir completamente del ciclo y ya no ejecutar iteraciones posteriores.
  • return: Se utiliza para salir completamente de una función o función anónima y ya no ejecutar código posterior.

        Estas palabras clave se pueden usar de manera flexible en bucles para controlar el comportamiento del bucle según sea necesario.

おすすめ

転載: blog.csdn.net/A125679880/article/details/132268435