OPERADORES Y EXPRESIONES

Expresiones

Una expresión es una instrucción o sentencia que devuelve un valor llamado valor
de retorno y que asigna a una variable un
  • Dato numérico
  • Valor lógico
  • Carácter
  • Cadena de caracteres o dato textual
Ejemplo 1:
NOTA: los listados que no tienen número de línea no son códigos completos. Sólo muestran las líneas asociadas a la explicación.
Ejemplo 2:

Operadores

Un operador permite relacionar dos datos en una expresión y evaluar el resultado de una operación.
Tipos:
  • Aritméticos
  • De asignación
  • De comparación
  • Lógicos
ARITMÉTICOS
Manipulan datos numéricos. Son los siguientes:
  • Suma +
  • Resta -
  • Producto *
  • División /
  • Resto de la división entera o módulo %
  • Incremento unitario ++
  • Decremento unitario -
  • Incremento de cien en cien +=100
  • Decremento de cien en cien -=100
NOTA: se muestran algunos ejemplos del operador módulo o resto de la división entera de dos números. Debe tenerse en mente que Dividendo=(Divisor*Cociente)+Resto
Ejemplo 1: 20%7 es igual a 6 ya que 20=7*2+6
Ejemplo 2: 1%3 es igual a 1 ya que 1=3*0+1
Este operador puede aplicarse a números decimales: verificar que
75%3.5=1.5     
7.5%35=7.5       
7.5%3.5=0.5
Ejemplo 1: muestra por consola una serie de resultados asociados a cálculos sencillos realizados con los operadores aritméticos. Todos los códigos en c:\cursojava\tema2
Código fuente
Por consola:
5
1
6
1
1
NOTA: sólo aparece la parte entera de la división por que se trabaja con dos números almacenados en variables enteras. Si se quiere obtener la división incluyendo decimales, bien el numerador o el denominador, deberían declararse como double o float.
Ejemplo 2: se muestra el uso del operador de incremento unitario
Código fuente
Por consola:
Valor de x: 11
Ejemplo 3: se analiza el empleo de los operadores de incremento o decremento cuando se emplean para asignar valores a otras variables
Código fuente
Por consola:
Valor de x: 11
Valor de y: 10
Ejemplo 4:
Código fuente
Por consola:
Valor de x: 11
Valor de y: 11
DE ASIGNACIÓN
Transfieren datos de una variable a otra. Son los siguientes:
  • x+=y        x=x+y
  • x-=y         x=x-y
  • x*=y         x=x*y
  • x/=y         x=x/y
  • x%=y       x=x%y    Es el módulo o resto de una división
Ejemplo 1:
Código fuente
Por consola:
Valor de z: 8
FIN DE PROGRAMA
Ejemplo 2:
Código fuente
Por consola:
El valor de a es 9 y el de b es 27
FIN DE PROGRAMA
DE COMPARACIÓN
Comparan dos datos y devuelven un valor booleano. Son los siguientes:
  • ==                   igual (no confundir con el = de asignación)
  • !=                    distinto
  • <                     mayor que
  • <                     menor que
  • >=                   mayor o igual que
  • <=                   menor o igual que
Ejemplo:
Código fuente
Por consola:
Valor de z: true
FIN DE PROGRAMA
LÓGICOS
Concatenan expresiones lógicas con objeto de evaluar si es cierto o falso el conjunto de las expresiones. Son los siguientes:
  • && (Y lógico): si todas las expresiones lógicas que se evalúan son verdaderas se devuelve un valor booleano true; si alguna es falsa, devuelve false.
  • || (O lógico): si alguna de las expresiones lógicas que se evalúa es verdadera, se devuelve un valor booleano true; si todas son falsas, devuelve false.
  • ! (NOT): invierte el valor de una expresión booleana.
Ejemplo 1:
Código fuente
Por consola:
Valor de z: true
FIN DE PROGRAMA
Ejemplo 2:
Código fuente
Por consola:
Valor de z: true
FIN DE PROGRAMA

Condicional simple if .. else

Se emplea cuando se quiere ejecutar un bloque de código siempre y cuando se cumplan una o varias condiciones. Estas condiciones devuelven un valor booleano, es decir true o false.
Sintaxis:
Ejemplo:
Código fuente
Por consola:
Luis es mayor de edad y puede votar.
Luis tiene 24 años.
FIN DE PROGRAMA
NOTA 1: si el bloque de código del if tienen una sola línea de código no es necesario utilizar llave, aunque si se escribe, no da error. Lo mismo ocurre con el bloque de código alternativo

NOTA 2: si no se escribe el else opcional y no se cumple la condición del if, el programa continúa ejecutándose pasando a las siguientes líneas de código

NOTA 3: si se cambia el valor de la variable int edadLuis a 16, entonces se ejecutará el bloque de código del else. Es decir, por consola se mostrará:
Luis no es mayor de edad y no puede votar
Luis tiene 16 años

Operador ternario

Se emplea para asignar valores a una variable en función del cumplimiento o no de una condición. Su sintaxis se basa en tres términos.
Sintaxis: los paréntesis son opcionales
algunaVariable=(condición que devuelve un valor booleano) ? (valor si devuelve true) : (valor si devuelve false)
NOTA: los valores que se devuelven deben ser compatibles con los que admite la variable que se inicializa
Ejemplo: en este ejemplo se muestra el funcionamiento del operador ternario y se introduce la variable referenciada String, que se utiliza para almacenar cadenas de texto. Se estudiará en profundidad más adelante.
Código fuente
Por consola:
Pedro es mayor de edad y puede votar

Condicional compuesto if .. else if .. else if .. etc .. else

Admite tantas condiciones como necesite el programador. MUY USADO
Sintaxis:
NOTA: si el bloque de código de los if tienen una sola línea de código no es necesario utilizar llaves, aunque si se escriben, no da error. Lo mismo ocurre con el bloque de código alternativo
Ejemplo:
Código fuente
Por consola:
BIENVENIDO AL PROGRAMA
Pedro y Luis son mayores de edad
Pedro y Luis pueden votar
FIN DE PROGRAMA

Condicional switch

Es parecido o similar a la estructura if()...else if()...else if()...else, pero con ciertas limitaciones:
  • Limitación 1: sólo admite una condición. No son validos los operadores && y ||.
  • Limitación 2: en esa condición se presupone que el operador de relación es la igualdad (==).
  • Limitación 3: la variable asociada a la condición sólo puede ser de tipo byte, short, int o char, ninguna otra es válida.
Ejemplo 1:
Código fuente
Por consola:
El operador es +
El operador es *
El operador es /
Operador desconocido
FIN DE PROGRAMA
Explicación:
Se ejecutan todas las instrucciones a partir del segundo case (es el que coincide con la variable operador). Si no hay ningún case coincidente, se ejecuta el código asociado a default.
NOTA 1: no se puede repetir ningún case con el mismo valor. Se produce error de compilación

NOTA 2: si se quiere que el programa, cuando encuentre el primer case coincidente con el valor de la variable evaluada, salga del switch, debe agregarse a cada case la instrucción break del siguiente modo:
Ejemplo 2:
Código fuente
Por consola:
El operador es +
FIN DE PROGRAMA

Bucle for

Estructura utilizada para ejecutar una o varias líneas de código un determinado número de veces. Este número de veces depende del cumplimiento de una condición fijada por el programador.
Sintaxis:
Ejemplo 1: se quiere desarrollar un programa que muestre por consola los números del 0 al 4. En este momento sólo se podría hacer de la siguiente manera:
Código fuente
Por consola:
0
1
2
3
4
FIN DE PROGRAMA
Este ejemplo se hace mucho mejor y con menos trabajo para el programador mediante un bucle for:
Código fuente
Si se modifica la línea System.out.println(i) por System.out.print(i) no se insertará una línea vacía después de cada número, aparecerán todos en la misma línea.
 
Código fuente
Por consola:
01234FIN DE PROGRAMA

Sentencias break, return y continue

Break
Aplicable dentro de bucles y estructuras condicionales de tipo switch. Su ejecución provoca que se salga del bucle o etiqueta que se esté ejecutando sin finalizar el resto de las sentencias asociadas al mismo.
Return
Se utiliza para truncar la ejecución de un método o para almacenar el dato que devuelven. Puede emplearse para truncar bucles cuando no haya más código después del bucle
Ejemplo 1:
Código fuente
Por consola:
0 1 2
Fuera del bucle
NOTA: se sale del bucle en el momento en que i llega a 3.
Si se sustituye break por return, se trunca la ejecución del método main
Por consola:
 0 1 2
Ejemplo 2:
Código fuente
Por consola:
Primera linea de unMetodo
Has introducido 10
FIN DE PROGRAMA
Continue:
Aplicable sólo a bucles. Finaliza la iteración "i" que en ese momento se está ejecutando (significa que no ejecuta el resto de sentencias hasta el final del bucle) y vuelve a analizar la condición del bucle, pero con la siguiente iteración "i+1".
 
Código fuente
Por consola:
0 1 2 4 5 6 7 8 9 10
Fuera del bucle

Bucles anidados

Es uno o más bucles for dentro de otro. Se pueden poner los que se consideren necesarios.
Ejemplo 1:
Código fuente
Por consola:
INICIO DEL PROGRAMA
1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3 4.1 4.2 4.3
FIN DE PROGRAMA
Ejemplo 2:
Código fuente
Por consola:
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
51 52 53 54 55

Bucle while

Estructura utilizada para repetir una o varias líneas de código siempre y cuando se cumpla una condición.
Sintaxis:
NOTA: si el bloque de código que se repite tiene una sola línea no son necesarias las llaves
Ejemplo: realizar un programa que muestre por consola los números enteros comprendidos entre el 0 y el 5 ambos incluidos.
Código fuente
Por consola:
0
1
2
3
4
5
FIN DEL PROGRAMA

Bucle do .. while

Es casi igual al anterior: la diferencia estriba en que un bucle do...while se ejecuta, al menos una vez, el bloque de código encerrado dentro del bucle,independientemente del valor booleano que devuelva la condición del while.
Sintaxis:
NOTA: si el bloque de instrucciones que se repite tiene una sola línea no son necesarias las llaves
Ejemplo: realizar un programa que muestre por consola los números enteros comprendidos entre el 0 y el 5 ambos incluidos.
Código fuente

Código de caracteres Unicode

Ya se especificó cuando se estudió la variable primitiva char, que Java emplea para representar caracteres este código. Se trata ahora de mostrar por consola los caracteres Unicode del alfabeto occidental sabiendo que están contenidos en el intervalo [0,255]. Para ello se utilizará un bucle for
Código fuente


.