Control Flow Flashcards
Esta bien este bloque? val age = 21 //Opcion con else: Si es no es mayor de edad asigna enano val mensaje = if(age > 18) "Mayor de edad"
Es erroneo ya que si igualamos un if a una variable debe tener tb un else para que siempre tome un valor.
Que pasa si igualamos una variable a un bloque if?
esta variable tomara el valor de aquello que ocurra en la ultima linea de dicho bloque
Es obligatorio usar else en un when?
No es necesario, solo se se usa else si no se han cubierto todas las opciones posibles. Esto puede cumplirse usando sealed classes y enums
Diferencia entre usar un when(x) con parametro a sin parametro, when?
Cuando lo usamos sin parametro se evaluan las expresiones como booleanas y la que lo cumpla se ejecuta mientras que si le pasamos un argumento se aplican condiciones sobre este.
Que ocurre en un when si existen varias condiciones que se cumplen?
when(x){
in 10..20 -> print(“Entre 2 y 7 incluidos”)
!in 3..8 -> print (“Entre 3 y 8 incluidos”)
else -> print(“no interesa”)
ej x=11 y solo se ejecuta la primera linea pq es la que primero se cumple
La expresion for a que se asemeja en otros lenguajes de programacion?(piensa ejemplo)
A foreach. for(dedos in mano) print(dedos)
Como imprimirias esta lista 30, 27, 24, 21 con un for?
for(i in 30 downTo 21 step 3) print(i)
Como imprimirias esta lista 24 29 34 29 con un for?
for(i in 24..30 step 5) print(i)
Como podrias imprimir con un for los indices y valores de un array?
Usando la funcion .withIndex() : for((index,value) in array.withIndex) print(“$index , $value”)
Cuales son los dos tipos de while loops y sus diferencias?
While y do While. El while chequea condicion y ejecuta mientra que do while primero ejecuta y luego chequea condicion. Esto quiere decir que el do while siempre va a ejecutar el bloque minimo una vez mientra que while no.
Que imprime este codigo?
loop@ for(i in 1..10){ for(j in 1..10){ if(i+j==8) break@loop print(j) } }
1 ,2 ,3 ,4, 5, 6
Que imprime este codigo?
loop@ for(i in 1..3){ for(j in 1..3){ if(i+j==2 || i+j==3) continue@loop print(i) print(j) } }
la i 3,3,3 y la j 1,2,3
Que problemas pueden surgir con las etiquetas return?
Si solo ponemos return devuelve a la variable/funcion que ha llamado a esa funcion
Si ponemos una label debemos poner @label en nombre de funcion y return@label
Para que sirven las excepciones y como es la manera mas facil de evitarlas?
Sirven para detectar errores que ocurren en algunas clases en concreto y se evitan de manera facil haciendo que esta herede de throws
Pon un ejemplo donde se usa el tipo Nothing?
Cuando asignamos null a una variable esta no es capaz de ser inferida por el compilador y se supone de tipo Nothing?
val x = null //Nothing?