En el capítulo 4 vimos los principales tipos de variables, ahora empezaremos a trabajar con ellos para conseguir un poco de fluidez.
Operaciones aritméticas
En el ejemplo que veremos a continuación os mostraré los tipos de operaciones básicas que podemos realizar.
fun main(args: Array<String>) { var a = 10 var b = 5 print("Suma: ") println(a + b) print("Resta: ") println(a - b) print("Multiplicación: ") println(a * b) print("División: ") println(a / b) print("El módulo (resto): ") println(a % b) }
Como podéis ver son operaciones muy básicas en las que no hay ninguna complicación. Ahora imaginemos que tenemos un Float y un Int. Tampoco tendríamos para realizar cualquiera de las operaciones siguientes a no ser que queramos almacenar el resultado en una nueva variable.
fun main(args: Array<String>) { var a: Float = 10.5f var b: Int = 5 print("Suma: ") var resultado = a + b print(resultado) }
Esto funcionaría, pero solo porque no le hemos asignado un tipo a la variable resultado, así que automáticamente se le asignará Float. Pero ¿qué pasa si generamos la variable resultado siendo Int? Pues que no funcionará porque no podemos operar con variables de tipos diferentes. Para ello haremos uso del toInt() que nos permite convertir una variable a Integer.
fun main(args: Array<String>) { var a: Float = 10.5f var b: Int = 5 var resultado: Int //Esto no funciona print("Suma: ") resultado = a + b //Esto sí print("Suma: ") resultado = a.toInt() + b print(resultado) }
También podríamos haber tenido la variable resultado en Float y pasar b con toFloat().
NOTA: Tenemos varios métodos toX() para cambiar los valores a placer. Debemos tener cuidado porque si por ejemplo a una String la intentamos pasar a un número, nos dará una excepción y el código no funcionará.
Concatenación
Ahora imaginad que tenemos dos String, obviamente no las podemos sumar para mostrarlas, así que para eso está la concatenación, que no es más que a través de un atributo poder poner más de una variable.
fun main(args: Array<String>) { val greeting = "Hola, me llamo" val name = "aris" println("$greeting $name") }
Solo debemos añadir las variables entre comillas dobles y anteponer a cada una de ellas el símbolo $. Daros cuenta que he añadido un espacio entre ambas variables, sino, aparecerá el resultado sin ese espacio.
NOTA: Esta vez he puesto val en vez de var. Esto se debe a que Kotlin prefiere que las variables sean inmutables, por lo que si nunca vamos a cambiar el valor de una variable, debemos poner val en lugar de var.
Pero con la concatenación también podemos hacer operaciones. Debemos tener cuidado pero si lo controlamos no debería haber problema.
val introduction = "El resultado de" val plus = "más" val firstNumber = 2 val secondNumber = 5 println("$introduction $firstNumber $plus $secondNumber es: ${firstNumber + secondNumber}")
En este último ejemplo he intentado hacerlo un poco más complejo. Lo primero que hemos hecho es concatenar una frase, después hemos vuelto a añadir un $ y entre llaver ( {} ) hemos metido la operación. El resultado sería este.
Continúa con el curso: Capítulo 6 – Funciones en Kotlin
tengo lo siguiente…
var a = 1;
var b = 7;
var c = a / b;
println(“a/b = &c”)
——————————————————–
a/b = 0
——————————————————–
Debería obtener :
a/b = 0.14285
Que estoy haciendo mal….?? :/
fun main (args: Array){
var a:Int = 1;
var b:Int = 7;
var c:Int = a / b;
println(«a/b = $c»)
}
O mejor este…
fun main (args: Array){
var a:Float = 1f;
var b:Float = 7f;
var c:Float = a / b;
println(«a/b = $c»)
}
Exactamente, deberás hacerlos float ya que Int al no tener decimales redondea.
Intente convirtiendo b en Float;
var a = 1;
var b = 7;
var c = a / b.toFloat();
println(“a/b = &c”)
——————————————————–
a/b = 0.14285715
——————————————————–
Alguna otra solucion?????
Intente hacer (a/b).toFloat() pero solo obtuve 0.0
El problema es que ya «a» y «b» son de tipo Int, prueba a asignarles el tipo al declararlas, por ejemplo var a: Float y b : Float.
Un saludo
siento raro no usar el punto y coma, pero vamos aprendiendo !
Puedes configurar para que trabajes con «;»
A mi tambien se me hace raro, pero la verdad me saca un peso de ensima!
El usar val para declarar una variable signfica que es como si fuera una constante? O se puede cambiar el valor de una variable que fue declarada con val?
Exacto, si marcamos la variable como val será un valor inmutable, es decir, nunca lo podremos cambiar.
Dale, muchas gracias. La palabra reservada Const no existe en Kotlin o Java?
Te cuento que ayer me anoté a tu curso en Udemy. Lo que no sabía era lo del descuento, pero mala suerte. Gracias nuevamente
He estado mirando y parece que sí. https://kotlinlang.org/docs/reference/properties.html
Mira el apartado «Compile-Time Constants»
Es igual a final de Java.
como apareces en udemy para buscar este curso
Aquí tienes toda la info 🙂
https://cursokotlin.com/video-curso-programacion-kotlin-descuento/
El teclear este codigo en kotlin.
println(«$introduction $firstNumber $plus $secondNumber es: ${firstNumber + secondNumber}»)
Esto me sale al ejcutarlo
El resultado de 2 mas 5 es: 25.
porque 25 y no el resultado 7
Eso pasa porque estás concatenando las variables en vez de sumarlas, para ello simplemente sería:
val result = firstnumber+secondnumber
println(“$introduction $firstNumber $plus $secondNumber es: $result”)
Julian debe ser por que has declarado las variables firstNumber y secondNumber como string.
o sea val firstNumber=»2″
Tengo un problema con el IntelliJ, en un principio si se imprime lo que escribo en código pero si lo modifico se supone que se debería imprimir lo escrito por segunda vez pero no cambia a no ser que salga del programa y vuelva a entrar. Que es lo que debería hacer?
Te recomiendo probar en el IDE online https://play.kotlinlang.org o probar directamente en Android Studio.
Un saludo!
Uno que cogi de la pagina oficial de KOTLIN
fun main() {
fun printDouble(d: Double) { print(d) }
val i = 1
val d = 1.0
val f = 1.0f
printDouble(d)
}
Creo que te equivocaste en tu ejemplo porque pones tipo INT y lo que sale finalmente es solo SUMA Que es un STRING. Ps CREO que te equivocaste.
fun main(args: Array) {
var a: Float = 10.5f
var b: Int = 5
var resultado: Int
resultado = a.toInt() + b
print(resultado)
}
Yo lo puse asi. Saludos desde Colombia
No perdona que me fallo el compilador InteljIDEA