Gracias por la clase anahi, yo por mi parte lo puse en practica como si fuera un juego, y agregue un numero random en donde, si ese numero random es igual 1 le quita vida, si no, aumenta su puntaje, comparto el codigo:
Codigo ------->
Resultado ------->
¡Excelente actividad compañero! Pare entender tu código me hiciste entender que era "while" y todo eso, una muy buena actividad ✨
😀 Postfijo este primero accede al dato y realiza la operación, en cambio prefijo obtiene el datoincrementado.
Pocas palabras y muy claro 😁
Igual esto confunde desde el punto de vista de razonarlo como un juego real, ya que si gana 100 puntos por ganar su quinta vida debería tener 100 puntos y ahora 5 vidas en vez de 4, y no 105 puntos. Es como que esta todo muy bien explicado pero como crítica debería estar bien planteado el ejemplo ya que quizás uno termina por perder tiempo razonando eso.
Es una analogia para explicar de manera mas explicita, el punto es entender el objetivo de lo que explica, no hay necesidad de complicarse creo yo
Tienes razón
Asi pude entender
Apunte
Me ayudó a comprender lo de los prefijos y subfijos:
Operadores Aritmeticos en java
import java.util.Scanner;publicclassMain{publicstaticvoidmain(String[] args){ int a=3, b=2; int c = a + b;System.out.println("c = "+ c);System.out.println("resultado:"+(a + b));System.out.println(a + b +" resultado"); int d = a - b;System.out.println("d = "+ d);System.out.println("resultado resta:"+(a - b)); int e = a * b;System.out.println("e = "+ e); double f = 3D / b;System.out.println("f = "+ f); int g = a % b;System.out.println("g = "+ g); int z =7%2;System.out.println("z = "+ z);if(z ==0)System.out.println("El numero es par");elseSystem.out.println("El numero es impar");}}```
Son excelentes estos operadores cuando los aplicas te ayudan a abreviar mucho código, siempre en cuanto se tenga en cuenta la tabla que Anahí explica, por cuestiones de orden y como se aplican las formulas
Hice un juego interactivo donde puedes practicar que es Prefijo y PostFijo mirando el juego de Anahí de una forma explicada por mi no se si alguno de ustedes le gustaria pero es un esfuerzo que yo hice y me gustaria mostrarlos a ustedes compañeros <3
import java.util.Scanner;publicclassIncrementDecrement{publicstaticvoidmain(String[] args){System.out.println("Empezamos el programa");System.out.println("1: PostFijo o 2: PreFijo"); short entradaTeclado;Scanner entradaEscaner =newScanner(System.in); entradaTeclado = entradaEscaner.nextShort();// Variables Globales del juego int lives =3; int gift;System.out.println("Antes de comenzar tenemos "+ lives +" vidas");//Logicaif(entradaTeclado ==1){System.out.println("y tenemos 100 gift");System.out.println("la operacion es (100 + lives++)");System.out.println("Hacemos la operacion como seria normalmente");System.out.println("100 + 3"); gift =100+ lives++;System.out.println(gift);System.out.println("Pero lo interesante es al final que se suma el ++ de lives++ y nos deja");System.out.println(lives +" vidas");System.out.println("entonces el ++ no afecto la operacion ya que solo obtuvo los datos ya existentes de lives");System.out.println("pero al final de todas las operaciones si sumo el ++");}elseif(entradaTeclado ==2){System.out.println("y tenemos 100 gift");System.out.println("la operacion es (100 + ++lives)");System.out.println("Primero obtenemos las 3 vidas y sumamos el +1 para dar 4 vidas");System.out.println("y ahora si sumamos 100 + 4"); gift =100+++lives;System.out.println(gift);System.out.println(lives +" vidas");System.out.println("entonces, el Prefijo primero sumo el +1 a live y luego realizo la operación");}else{System.out.println("No escojiste ninguna opcion valida <,3");}}}
Muy bueno, gracias!
no creo entender del todo el funcionamiento. Porque si con el postfijo no tomara en cuenta si se incrementa o no... por que ponerlo? no seria lo mismo que solamente colocar la variable con el ultimo valor y y ya? Si alguien pudiera orientarme se lo agradecería mucho :)
nt gift = 100 + lives++;
System.out.println(gift);
int gift = 100 + lives;
System.out.println(gift);
Uno de los uso por ejemplo es en el for que todo se ejecuta en la primer linea donde esta el valor inicial, el condicional y el incremento que solo se ejecuta despues de haber ejecutado el for
JAVA: Prefijo / Postfijo
_
JAVA Operators
_
Class Notes
Code:
import java.lang.*;/**
* IncreaseDecrease
*//*
* Operadores de asignación:
+=: a += b es equivalente a = a + b.
-=: a -= b es equivalente a = a - b.
*=: a *= b es equivalente a = a * b.
/=: a /= b es equivalente a = a / b.
%=: a %= b es equivalente a = a % b.
Operadores de incremento:
++: i++ es equivalente a i = i + 1.
--: i-- es equivalente a i = i - 1.
Note: can be either ++i or i++ (but i++ is better)
Note #1: technically they are the same, but they aren't
Order of execution:
i++;
1. get value `i`
2. add ++
but, in this example:
5 + i++; //conclusion: gets value
1. get value `i`
2. 5 + i //because of this, the final resault wont get the ++ increment, only `i`
3. i++
----------------//----------------
++i;
1. get i value
2. add ++ to i value
example:
5 + ++i; //conclusion: gets incremented value
1. get i value
2. add ++ to i value
3. add i + 5 //in this case the result will end up with `i`'s increment (++)
*/publicclassIncreaseDecrease{publicstaticvoidmain(String[] args){//let's supppose this is Mario Bros!//System.out.printf("🎮---Mario-Bros---🎮\n\n"); int lives =5;//five lives int points =0;System.out.printf("Initial lives: %d\nPoints: %d\n\n", lives, points);//(5,0)//let's supppose something happened to Mario lives--;System.out.printf("🔥 Lives after a fight: %d\n", lives);//4//now let's supppose Mario got a powerup lives++;System.out.printf("🔥 Lives after powerup: %d\n", lives);//5//now Bowser hitted him with a bat... lives--;System.out.printf("🔥 Lives after being hitted: %d\n\n", lives);//4//prefix way of i++//PlotTwist: whenever mario gets a life, he gets 100 points + the current ammount of lives + 1!//int gift = 100 + lives++; //this will not work, becuase it will add 100 + lives, and then it's gonna increment lives++; however since it was already added to the lives counter it simple does not count int gift =100+++lives; points += gift;System.out.printf("Ayoo! Mario got a powerup, a gift!\n");System.out.printf("Points: %d⭐\n\n", points);}}
Output:
🎮---Mario-Bros---🎮
Initial lives:5Points:0🔥 Lives after a fight:4🔥 Lives after powerup:5🔥 Lives after being hitted:4Ayoo!Mario got a powerup, a gift!Points:105⭐
OPERADOR INCREMENTO DECREMENTO
Operador ( ++ ): nombre: incremento, ejemplo: i++, desglose: i = i +1
Operador ( -- ): nombre: decremento, ejemplo: i--, desglose: i = i - 1
Operador incremento siempre va se va a sumar 1.
Operador decremento se va a restar 1
Hay dos formas de posicionar este operador, se puede hacer de manera prefija(antes de la variable) y posfija(después de la variable)
prefijo
++i
posfijo
i++
Estos tienen una diferencia en realidad a niveles prácticos son iguales pero a nivel de lógica tiene un significado y tiene una razón de ser.
Excelente
o por dios ya por fin entendi por que en un for se utiliza el i++ ni el profesor de la universidad me supo explicar el pór que
Hay diferencia entre parámetro y argumento?
El término parámetro, se usa a menudo para referirse a la variable en la declaración del método, mientras que argumento, se refiere al valor que se envía. Para evitar confusiones, es común ver a un parámetro como una variable y un argumento como un valor.
Los parámetros aparecen en la declaración de los métodos y los argumentos en las llamadas a los métodos. En la declaración del método, la variable es un parámetro. Y en la llamada del método, la variable es el argumento del método.
El argumento es lo que tu envías al parámetro.
Me quedo con la duda,¿lives o lifes?.
El plural de life es lives
Aquí hay una comparación bastante ilustrativa al respecto :)