Está en la página 1de 53

Variables, tipos de datos ,operadores,

palabras reservadas, estructuras Java

Repaso de conceptos
Universidad de Costa Rica
If-2000 Programación I
Prof. Jerson Ramos Arias
II-2022
Tipos de datos
Existen dos tipos de datos: simples (sin estructura) y compuestos (estructurados).
Los tipos de datos simples son los siguientes:
• numéricos (integer, real)
• lógicos (boolean)
• caracter (char, string)
• Datos numéricos:
- Tipo numérico entero (integer)
- Tipo numérico real (real)
Los tipos de datos compuestos son:
• Cadena (Strings)
• Arreglos vectores y matrices (arrays)
Datos numéricos:

• Enteros: Es un subconjunto finito de los números enteros. Los enteros


son números completos, no tienen componentes fraccionarios o
decimales y pueden ser negativos o positivos. En ocasiones se
denominan números de punto fijo.
Ejemplos: 5 6 -15 4 20 17 1340 26

• Reales: Consiste en un subconjunto de los números reales. Los


números reales siempre tienen un punto decimal y pueden ser
positivos o negativos. Un número real consta de un entero y una parte
decimal.

Ejemplos son números reales:


0.08 3739.41 3.7452 -52.321
Datos lógicos (booleanos)
• El tipo lógico - también denominado booleano - es aquel
dato que sólo puede tomar uno de dos valores:
verdadero (true) o falso (false)

• Este tipo de datos se utiliza para representar las alternativas


(sí / no) a determinadas condiciones. Por ejemplo, cuando
se pide si un valor entero es par, la respuesta será verdadera
o falsa, según sea par o impar.
Datos tipo carácter

• El tipo carácter es el conjunto finito y ordenado de


caracteres que la computadora reconoce. Un dato tipo
carácter contiene un solo carácter.

• Los caracteres que reconocen las diferentes computadoras


no son estándar; sin embargo, la mayoría reconoce los
siguientes caracteres alfabéticos y numéricos:
- caracteres alfabéticos (A, B, C,..., Z)
- caracteres numéricos (1, 2, ..., 9)
- caracteres especiales (+, -, *, /, ^, ... , <, >, $, ...)
Dato tipo String

• Una cadena (string) de caracteres es una sucesión de caracteres que se


encuentran delimitados por una comilla (apóstrofo) o dobles comillas, según
el tipo de lenguaje de programación.
• La longitud de una cadena de caracteres es el número de ellos
comprendidos entre los separadores o delimitadores. Algunos lenguajes
tienen datos tipo cadena. Ejemplo:
‘8 de octubre de 1976’
Cadenas de Caracteres

• Creación de una cadena:


String miCadena = "Esta es la cadena";
• Cadena Vacía vs Cadena Nula
String s1; // Cadena Nula, igual al valor null
String s2= ""; // Cadena Vacía
• Comparación de cadenas:
if (cadena1.equals(cadena2))
System.out.println("Las cadenas son
iguales");
else System.out.println("Las cadenas no son
iguales");

• Concatenación de cadenas:
String c3 = c1+c2;
Tipos Primitivos
• Tipos numéricos
• Tipos enteros:
• byte, enteros 8-bits con signo complemento a 2,
• short, enteros 16-bits con signo complemento a 2
• int, enteros 32-bits con signo complemento a 2
• long, enteros 64-bits con signo complemento a 2
• Tipos en coma flotante:
• float, real en coma flotante, 32-bits IEEE 754
• double, real en coma flotante, 64-bits IEEE 754

• Tipos no numéricos
• char, carácter 16-bits Unicode
• boolean, tipo lógico, cuyos valores son true (cierto) y false (falso)
Operadores aritméticos

• Suma +
• Resta -
• Multiplicación *
• División /
• Resto de la División %
Operadores asignación

El principal es '=' pero hay más operadores de


asignación con distintas funciones
• '+=' : op1 += op2 op1 = op1 + op2
• '-=' : op1 -= op2 op1 = op1 - op2
• '*=' : op1 *= op2 op1 = op1 * op2
• '/=' : op1 /= op2 op1 = op1 / op2
• '%=' : op1 %= op2 op1 = op1 % op2
• Operadores Unarios: El mas (+) y el menos (-). Para cambiar el signo del
operando.

• Operador Instanceof: Nos permite saber si un objeto pertenece a una clase


o no.NombreObjeto instanceof NombreClase

• Operadores Incrementales: Son los operadores que nos permiten


incrementar las variables en una unidad. Se pueden usar delante y detrás de
la variable dependiendo de lo que queramos, es decir, si queremos que
incremente o viceversa antes de utilizar o lo contrario.
'++'
'--'
Operadores relacionales

Permiten comparar variables según relación de igualdad/desigualdad o


relacción mayor/menor. Devuelven siempre un valor boolean.
• '>': Mayor que
• '<': Menor que
• '==': Iguales
• '¡=': Distintos
• '>=': Mayor o igual que
• '<=': Menor o igual que
Operadores Lógicos

Nos permiten construir expresiones lógicas.


• '&&' : devuelve true si ambos operandos son true.
• '||' : devuelve true si alguno de los operandos son true.
• '!' : Niega el operando que se le pasa.
Operador de concatenación

Operador de concatenación con cadena de caracteres '+':


Por Ejemplo:

System.out.println("El total es"+ result +"unidades");


String c3 = c1+c2;
Expresiones
Grupos de Precedencia
• Las expresiones que tienen dos o más operandos requieren unas reglas matemáticas que
permitan determinar el orden de las operaciones, se denominan reglas de prioridad o
precedencia

• Grupo 0: ( )
• Grupo 1: ++, --, + (unario), - (unario)
• Grupo 2: *, /, %
• Grupo 3: +, -, + (concatenación)

• Funciones especiales:
• Seno x => Math.sin(x)
• x2 => Math.pow(x,2)
• Math.round(6.6) => 7
Estructuras básicas para la solución de un problema

Precedencia de los Operadores


Prioridad de los operadores en general
Precedencia de los operadores
• A) Las operaciones que están encerradas entre paréntesis se
evalúan primero. Si existen diferentes paréntesis anidados
(interiores unos a otros), las expresiones más internas se
evalúan primero.
• b) Las operaciones aritméticas dentro de una expresión suelen
seguir el siguiente orden de prioridad:
• 1. Operador exponencial (^ , o bien **)
• 2. Operadores *, /
• 3. Operadores +, -
• 4. Operadores div y mod
Constantes
• Es una partida de datos que permanecen sin cambios durante todo el desarrollo
del algoritmo o durante la ejecución del programa.
Una constante tipo carácter o constante de caracteres consiste en un carácter
válido encerrado dentro de apóstrofos; por ejemplo:
‘B’‘+’ ‘4’ ‘;’ ‘ ’’ ’

• Una secuencia de caracteres se denomina normalmente una cadena, y una


constante tipo cadena es una cadena encerrada entre apóstrofos. Por
consiguiente:
‘José Luis García’
es constante de cadena válida. Si un apóstrofe es uno de los caracteres en una
constante de cadena, debe aparecer como un par de apóstrofos:
‘Jonhn’’s’
Sólo existen dos constantes lógicas o booleanas: verdadero y falso
Variables

• Es un objeto o partida de datos cuyo valor puede cambiar


durante el desarrollo del algoritmo o ejecución del programa.
• Dependiendo del lenguaje, hay diferentes tipos de variables
tales como: enteras, reales, caracter, lógicas y de cadena.
• Una variable que es de un cierto tipo puede tomar únicamente
valores de ese tipo.
• Si se intenta asignar un valor de un tipo a una variable de otro
tipo se producirá un error de tipo.
Variables
•Una variable se identifica por los siguientes
atributos: nombre que lo asigna y tipo que
describe el uso de la variable
•Los nombres de las variables, a veces conocidos
como identificadores, suelen constar de varios
caracteres alfanuméricos de los cuales el primero
normalmente es una letra.
• No se deben utilizar como nombres de
identificadores palabras reservadas del lenguaje
de programación.
Variables

• Nombres válidos de variables son:


A510
Nombres
Nombre_Apellidos

• Los nombres de las variables elegidas para el algoritmo o el


programa deben ser significativos y tener relación con el objeto que
representan, como pueden ser los casos siguientes:
Nombre para representar nombres de personas
Precios para representar los precios de diferentes artículos
Declaración de Variables

• tipo nombre;
• tipo nombre1, nombre2, nombre3;
• tipo nombre = valor;

Declaración de Constantes:
static final tipo nombre = valor;
Asignación

• La operación de asignación es el modo de darle valores a una variable.


Existen dos maneras de dar un valor a las variables : una es leer un valor para
la variable mediante una operación de entrada; la otra manera es asignar un
valor a la variable por medio de una asignación.
• Cuando un programa solicita un valor para una variable hablamos de una
entrada.
• En cambio, en la asignación simplemente se le confiere un valor a la
variable. Una variable solo puede contener un valor a la vez, por lo que
cuando se le asigna un nuevo valor el anterior se pierde.
Formato general asignación

• Nombre de la variable expresión


En donde expresión es una expresión, variable o constante
• La flecha (operador de asignación) se sustituye en otros lenguajes
por = (JAVA, BASIC, FORTRAN) o := (PASCAL )
• Existen dos tipos de asignación: Aritmética y lógica
Asignación aritmética
• Las expresiones en las operaciones de asignación son aritméticas:
• Ejemplos java
AMN = 3+14+8
Se evalúa la expresión 3+14+8 y se asigna a la variable AMN, es decir, 25 será el valor que
toma AMN
Otros:
N1 = 14.5*8
TER2 = 0.75*3.4
MEDIA = TER1/TER2
Asignación Lógica

• La expresión que se evalúa en la operación de asignación es lógica.


Supóngase que M,N y P son variables de tipo lógico.
Ejemplos java
M= 8<5
N = M o (7<=12)
P = 7>6
Tras ejecutar las operaciones anteriores, las variables M, N y P tomarán los valores
falso, verdadero, verdadero.
Asignación de caracteres

• La expresión que se evalúa es de tipo carácter.


String x="12 de octubre de 1972";

la acción de asignación anterior asigna la cadena de caracteres ‘12 de


octubre de 1972’ a la variable tipo carácter x.
Asignación
Asigna el valor del término de la derecha al operando de la izquierda.
El operando izquierdo suele ser el identificador de una variable. Este operador no se evalúa devolviendo
un determinado valor

• Utilización de operadores:
• var1 = var2 + var3; // asignar a var1 el valor de var2 + var3
• var1 = var2 - ver3; // asignar a var1 el valor de var2 - var3
• var1 = var2 * ver3; // asignar a var1 el valor de var2 * var3
• var1 = var2 / ver3; // asignar a var1 el valor de var2 / var3
• var1 = var2 % ver3; // asignar a var1 el valor de var2 % var3

• Asignaciones de incremento decremento:


• variable++; // añadir uno a variable
• variable--; // restar uno a varibale
• variable += exp; // añadir exp a variable
• variable -= exp; // restar exp a variable
Conversiones entre tipos

OPERADOR CAST
• En java se puede forzar un dato, variable o una expresión a convertirse o
cambiarse a un nuevo tipo de dato.
• El operador cast realiza este proceso, es decir convierte datos, variables o expresiones a un
nuevo tipo de dato: byte => short => int => long => float => double

• Su formato es:
(nuevotipo) dato , var, exp;

double a; int total;


a=15/2; total=total/5;
int b=(int)a; double total2=(double)total;
Conversiones entre tipos

Método parse
• Permite convertir caracteres numéricos, a datos numéricos, es
decir, convertir un número almacenado como String a un dato del
tipo int, double u otro según se requiera.
• Esto es muy útil a la hora de ingresar números desde el teclado,
ya que Java toma los datos capturados por el teclado como
cadenas de caracteres con las que no se pueden realizar
operaciones matemáticas, y en muchas ocasiones necesitamos
leer números para realizar operaciones con ellos.
Ejemplos de uso de parsing
• De String a int: • De String a byte:
String cadena = "123";
String cadena = "123";
int entero = Integer.parseInt(cadena);
byte entero_byte = Byte.parseByte(cadena);

• De String a double:
String cadena = "12.3";
• De String a short:
String cadena = "123";
double decimal =
Double.parseDouble(cadena); short entero_short = Short.parseShort(cadena);

• De String a float: • De String a Long:


String cadena = "1.23"; String cadena = "123";

float flotante = Float.parseFloat(cadena); long entero_long = Long.parseLong(cadena);


Estructuras de control, selección,
repetición, operador ternario y
enumeración
Estructuras condicionales
y de control de flujo
if
Empleada para elegir entre cursos alternativos de acción

if - else
La estructura de selección if/else permite que el programador especifique
que se ejecuten acciones distintas cuando la condición sea verdadera o
que cuando la condición sea falsa.
Las estructuras condicionales dobles permiten elegir entre dos opciones o
alternativas posibles en función del cumplimiento o no de una determinada
condición.
Selección con if-else

if (condicion)
instrucción;
else instrucción;

Ejemplo
if (velocidad>limite)
System.out.println("Multazo");
else System.out.println("Buen conductor");
Sucesivos if-else
if (condicion) instrucción;
else if (condicion) instrucción;
else if (condicion) instrucción;
....
else instrucción;

Ejemplo
if (nota>=9) calificacion=’SB’;
else if (nota>=7) calificacion=’N’;
else if (nota>=5) calificacion=’A’;
else calificacion=’S’;
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.
algunaVariable=(condición que devuelve un valor booleano) ? (valor si
devuelve true) : (valor si devuelve false)
Ejemplo
int edad=8;
String accion1="si vota";
String accion2="no vota";
String respuesta= edad>=18?accion1:accion2;
System.out.println(respuesta);
La instrucción switch
Situación donde hay más de un par de alternativas., referimos a ellas como comprobaciones de múltiples
caminos.

switch (expresion) {
case valor: instrucción; break;
case valor: instrucción; break;
....
default: instrucción; break;
}

switch(nota) {
case 10:
case 9: calificacion = ‘SB’; break;
case 8:
case 7: calificacion = ‘N’; break;
case 6:
case 5: calificacion = ‘A’; break;
default: calificacion = ‘S’; break;
}
Ciclo for
Ejecuta las acciones del cuerpo del bucle un número especificado de veces y de
modo automático controla el número de iteraciones o pasos a través del cuerpo
del bucle.

for(inicio; prueba; actualización) {


< cuerpo del bucle for >
}

for(int i=0; i<5;i++)


System.out.println("hola");

for(int i=0; i<5;i++) {


cuenta += i;
System.out.println("hola");
}
Ciclos for indeterminados

Un ciclo for indeterminado cuando no existe un numero exacto de repeticiones y el ciclo se


detiene al cumplirse una condición
for(; ; ) {
< cuerpo del bucle for >
if (condicion) break;
}

for(inicio; ; actualización) {
< cuerpo del bucle for >
if (condicion) break;
}
Ciclo While
Es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición.

<instrucciones para inicializar las condiciones>


while (condiciones) {
<instrucciones para llevar a cabo el bucle y cambiar condiciones
>
}

int i=0;
while(i<5) {
System.out.println("hola");
i++;
}
Bucles condicionales do while
Similares a los bucles while, excepto que la expresión verdadera es verificada al final de cada iteración en
lugar que al principio.
La diferencia principal con los bucles while es que está garantizado que corra la primera iteración de un
bucle do-while

<instrucciones para inicializar las condiciones>


do {
<instrucciones para llevar a cabo el bucle y cambiar condiciones >
} while (condiciones);

int i=0;
do {
System.out.println("hola");
i++;
} while (i<5);
Enumeraciones

• Un enum, también llamado enumeración o tipo enumerado es un tipo de dato definido por el
usuario que solo puede tomar como valores los definidos en una lista.
Se declara de forma general:

[modificadores] enum nombreEnum {VALOR1, VALOR2, VALOR3, ...}

• modificadores (opcional) puede ser public, private, protected además de static.


• enum es la palabra reservada para definir enumeraciones en Java.
• nombreEnum es el nombre del nuevo tipo creado.
• VALOR1, VALOR2, ... son los valores que pueden tomar las variables que se declaren de este
tipo.
• Se pueden declarar enumeraciones dentro o fuera de una clase pero nunca dentro de un
Ejemplo

public enum Dia {LUNES, MARTES, MIÉRCOLES, JUEVES, VIERNES, SABADO,


DOMINGO}
•Por convenio se suelen escribir los valores en mayúsculas ya que se trata de
constantes.
•Una vez creado el tipo enum ya podemos declarar variables.
Para declarar una variable de tipo Dia:
Dia d;
La variable d solo podrá tomar uno de los valores definidos en la lista de valores.
•Para darle un valor a las variables:
nombreDelEnum.VALOR;
•Por ejemplo:
d = Dia.JUEVES
Ejemplo
public class Enum1 {

enum Dia {LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO}

public static void main(String[] args) {


Dia d; // declaramos una variable del tipo Dia
d = Dia.DOMINGO; //asignamos un valor
if (d == Dia.DOMINGO || d == Dia.SABADO) //comparamos valores
System.out.println("Estamos en fin de semana");
else
System.out.println("Aún no ha llegado el fin de semana");
switch (d) { //ejemplo de switch
case LUNES:
case MARTES:
case MIERCOLES:
case JUEVES:
case VIERNES:
System.out.println("Aún no ha llegado el fin de semana");
break;
default:
System.out.println("Estamos en fin de semana");
}
}
}
Un enum en Java es una Clase.
En general para utilizarlos los escribiremos en una clase con el mismo nombre del enum que añade al proyecto
//Archivo Dia.java
public enum Dia{
LUNES, MARTES, MIÉRCOLES, JUEVES, VIERNES, SABADO, DOMINGO
}
Aunque ya hemos visto antes que esto no es necesario y podemos escribirlos en el mismo archivo de la clase donde los
vamos a utilizar.
Si declaramos el enum en el mismo archivo que la clase que lo usa y fuera de esta clase debemos tener en
cuenta que en un archivo .java solo puede haber una clase pública y aquí también se incluyen las
enumeraciones.
Por ser una clase, un enum en Java puede contener atributos y métodos.
Cada constante del enum es un objeto de la clase.
Todas las clases enum declaradas heredan de forma implícita de la clase Enum de Java (java.lang.Enum)
Aunque un enum es una clase, no se pueden crear instancias de un enum.
1. Algunos métodos que se heredan de Enum:
name()
public final String name()
Devuelve un String con el nombre de la constante que contiene tal y como aparece en la declaración.

ordinal()
public final int ordinal()
Devuelve un entero con la posición de la constante según está declarada. A la primera constante le
corresponde la posición cero.

toString()
public String toString()
Devuelve un String con el nombre de la constante que contiene tal y como aparece en la declaración.
Sobrescribe el método toString de la clase Object.
2. Algunos métodos que se heredan de Enum:
equals()
public final boolean equals(Object other)
Devuelve true si el valor de la variable enum es igual al objeto que recibe.
Sobrescribe el método equals de la clase Object.

compareTo()
public final int compareTo(Enum other)
Compara el enum con el que recibe según el orden en el que están declaradas las constantes.
Devuelve un número negativo, cero o un número positivo según el objeto sea menor, igual o mayor
que el que recibe como parámetro.
Solo se pueden comparar enumeraciones del mismo tipo.
3. Algunos métodos que se heredan de Enum:

valueOf()
public static enumConstant valueOf(String s)
Devuelve la constante que coincide exactamente con el String que recibe como parámetro.

values()
public static enumConstant [] values()
Devuelve un array que contiene todas las constantes de la enumeración en el orden en que se han
declarado. Se suele usar en bucles for each para recorrer el enum.
Ejemplo de uso de los métodos heredados de la clase Enum:
public class Enum2 {

public enum Opcion {UNO, DOS, TRES, CUATRO}

public static void main(String[] args) {


Opcion op = Opcion.DOS;
Opcion op2 = Opcion.CUATRO;
if(op.name().equals("DOS"))
System.out.println("Cadena DOS");
System.out.println(op.ordinal());
if(op2.compareTo(op)>0)
System.out.println(op2 + " > " + op);
String cadena = "UNO";
if(Opcion.valueOf(cadena) == Opcion.UNO)
System.out.println("Cadena UNO");
for(Opcion x : Opcion.values())
System.out.println(x);
}
}
• En Java podemos declarar constantes de un enum relacionadas con un valor.
• Para ello la clase enum debe tener un atributo para cada valor relacionado
con la constante y un constructor para asignar los valores.
• Esos valores se pasan al constructor cuando se crea la constante.
• El constructor debe tener acceso private o package. No puede ser público.
• Las constantes se deben definir primero, antes que cualquier otro atributo o
método.
• Cuando un enum tiene atributos o métodos la lista de constantes debe
acabar con punto y coma.
Ejemplo de constantes enum con valores asociados.
Los valores 100 y 80 que acompañan a las constantes se pasan al constructor.
//Archivo Precios.java
public enum Precios {PRECIONORMAL(100), PRECIOVIP(80);
double precio;
Precios(double p){
precio = p;
}
public double getPrecio() {
return precio;
}
}

//Clase Principal
public class Enum3 {
public static void main(String[] args) {
Precios p = Precios.PRECIOVIP; //precio = 80
System.out.println(p.getPrecio()); //muestra 80
}
}
Muchas gracias

También podría gustarte