SlideShare a Scribd company logo
1 of 42
Download to read offline
Tema 3. Variables y asignación. Tipos
de datos elementales. Bloques
Introducción a la Informática y la Programación (IIP)
Curso 2011/12
Departamento de Sistemas Informáticos y Computación
Contenidos
1. Tipos de datos
2. Variables
3. Expresiones y asignación.
4. Constantes. Modificador final
5. Consideraciones sintácticas sobre el uso de identificadores
6. Tipos numéricos
 Enteros
 Reales
 Compatibilidad y conversión de tipos
 Operadores aritméticos
 Desbordamiento
7. Tipo carácter
8. Tipo lógico
 Operadores relacionales
 Operadores lógicos
9. Precedencia de operadores
10. Bloques de instrucciones
29/09/2011 IIP - Curso 2011/12 2
Tipos de datos
• Un dato es cualquier información dispuesta de manera adecuada para su
tratamiento por un ordenador.
• Un tipo de datos define:
– un conjunto de valores y
– el conjunto de operaciones permitidas sobre ellos.
• Los tipos de datos en Java se clasifican en:
– Tipos elementales o primitivos: no se definen a partir de otros y su
representación y operaciones vienen dadas por el propio lenguaje.
– Tipos complejos o estructurados (referencia): agregación de datos del
mismo o de distinto tipo.
• predefinidos
• definidos por el programador
29/09/2011 3
byte, short, int, long, float, double, char, boolean
Scanner, String, etc.
IIP - Curso 2011/12
Circulo, Pizarra, etc.
Variables
• Todos los datos que se manejan en la resolución de un problema mediante un
programa se representan mediante variables.
• Una variable se caracteriza por ser de un tipo de datos que determina:
– el conjunto de valores que puede almacenar,
– el conjunto de operaciones permitidas sobre ellos y
– el tamaño de la zona de memoria que pueden ocupar.
• Según el uso que se vaya a hacer de la variable, éstas se pueden clasificar
como:
– Atributos o variables de instancia y de clase que se definen en una Clase-
Tipo de dato.
– Variables locales que son las que se definen en el método main de una
Clase-Programa o en cualquier bloque de instrucciones o método.
– Parámetros de un método.
29/09/2011 4IIP - Curso 2011/12
Variables
29/09/2011 IIP - Curso 2011/12 5
public class Circulo {
private double radio ;
private String color ;
private int centroX , centroY ;
...
public void setRadio(double nuevoRadio) { radio = nuevoRadio; }
}
public class PrimerPrograma {
public static void main (String[] args ) {
Pizarra miPizarra = new Pizarra("ESPACIO DIBUJO",300,300);
Circulo c1 = new Circulo(50,"amarillo",100,100);
...
}
}
variables de instancia
parámetro
parámetro
variables locales
Variables
• Declaración de variable: descripción de sus características, definiendo su
identificador y tipo de datos que restringe sus valores y las operaciones que se
pueden realizar.
• Java es un lenguaje fuertemente tipado, exige la declaración de todas las
variables antes de su uso.
• Sintaxis:
• Ejemplos:
• Un atributo y una variable local se distinguen por el lugar donde se definen:
clases o métodos. Sólo los atributos pueden ir precedidos por los
modificadores de visibilidad y ámbito.
29/09/2011 6
tipo nomvar1, nomvar2, … , nomvarn ;
int var1, var2, suma;
char c;
double d1, d2;
IIP - Curso 2011/12
Variables
• El compilador asigna valores por defecto a los atributos pero no a las variables
locales (error de compilación).
• Las variables pueden cambiar de valor. Se denomina estado de una variable a
su contenido en un determinado momento de la ejecución.
• La ejecución de un programa se puede ver como una sucesión de cambios de
estado que transforman un cierto estado inicial (datos) en un determinado
estado final (solución).
• El estado de un programa es el contenido de sus variables en un momento de
la ejecución.
• La traza de la ejecución de un programa es el seguimiento de la evolución de
los valores de las variables en una ejecución.
29/09/2011 7IIP - Curso 2011/12
Expresiones y asignación
• La asignación se utiliza para dar valores a las variables o para reemplazar los
valores que ya tienen por otros nuevos.
donde identificador y expresión deben ser de tipos compatibles.
• Una expresión es una sucesión (sintácticamente correcta) de valores,
variables, operadores y llamadas a métodos que se evalúa a un único valor,
siendo el tipo de la expresión el tipo de este valor.
• La operación de asignación evalúa la expresión y después guarda el valor
resultante en la variable identificador.
• La propia asignación se evalúa a un resultado que puede ser o no utilizado.
29/09/2011 8
identificador = expresión;
IIP - Curso 2011/12
int cantidadInicial;
cantidadInicial = 50;
int cantidadReal, cantidadInicial;
cantidadReal = cantidadInicial = 50;
Expresiones y asignación
• En el momento de su declaración, se puede asignar a las variables un valor
inicial, esto es, se pueden inicializar.
• El contenido de la variable se pierde cuando se le asigna uno nuevo.
29/09/2011 9
int var1, var2, suma = 5;
char ch1, ch2 = ‘u’;
double d1 = 2.0, d2 = 3.0 + d1;
var1 = 15;
suma = suma + 2;
IIP - Curso 2011/12
int x = 5, y = 9;
int aux = x;
x = y;
y = aux;
(1)
(2)
(3)
(4)
Constantes. Modificador final
• Una constante es una variable inmutable: su valor no puede cambiar durante
la ejecución.
• Las constantes igual que las variables tienen un tipo de datos asignado y se
definen igual que cuando se declara una variable y se inicializa su valor.
29/09/2011 10
final tipo identificador = Valor;
final int NUM_ALUMNOS = 25;
IIP - Curso 2011/12
Consideraciones sintácticas sobre el
uso de identificadores
• Convenciones de codificación en Java:
• Los identificadores son nombres que el programador da a variables, métodos
y clases. Deben comenzar por una letra y, a continuación, cualquier
combinación de letras, números, el carácter subrayado _ y el signo de dólar $.
• Java es sensible a las mayúsculas: distingue MAYÚSCULAS de minúsculas.
29/09/2011 11
Ejemplos válidos radio, MAX_VALOR, dato1, año, día, ∏
Ejemplos no válidos 5esfera, mi valor, una.variable
www.programacion.com/java/tutorial/convenciones/
IIP - Curso 2011/12
toString es distinto de tostring
• Es conveniente utilizar identificadores descriptivos de manera que la lectura
del código permita conocer su significado.
• Los identificadores de variables suelen ir en minúsculas. Si el identificador está
formado por varias palabras, la primera palabra va en minúsculas y el resto de
palabras comienza por una mayúscula.
• Los identificadores de constantes se suelen poner en mayúsculas. Si el
identificador consta de más de una palabra, se separan por el signo de
subrayado.
29/09/2011 12
suma, toString, cantidadInicial, cantidadReal
radioEsfera, volumenCubo
final double PI = 3.141592;
final int MAX_ALUMNOS = 25;
IIP - Curso 2011/12
Consideraciones sintácticas sobre el
uso de identificadores
• Las palabras reservadas tienen un significado preestablecido y no pueden
usarse como identificadores. Tampoco pueden usarse como identificadores
null, true y false.
29/09/2011 13
* No se utilizan
abstract continue for new switch
assert default goto* package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const* float native super while
IIP - Curso 2011/12
Consideraciones sintácticas sobre el
uso de identificadores
Tipos de datos primitivos en Java
Tipos de datos elementales Nombre
Tipos numéricos
- números enteros
- números reales (en coma flotante)
byte, short, int, long
float, double
Tipo carácter char
Tipo lógico boolean
29/09/2011 14
• A diferencia de lo que ocurre en otros lenguajes, los tipos básicos en Java
siempre tienen los mismos tamaños y capacidades, independientemente del
entorno en el que se trabaje.
IIP - Curso 2011/12
Tipos numéricos enteros
• Por defecto los literales enteros son de tipo int.
• Para forzar que un entero se interprete como un long se añade al final L o l.
• Los literales enteros pueden expresarse en:
– decimal 193
– octal 0301 (3*82 + 0*81 + 1*80 = 3*64 + 1 =193)
– hexadecimal 0xC1 (C*161 + 1*160 = 12*16 + 1 = 193)
29/09/2011 15
Nombre Tamaño en
bits
Valor mínimo
̶ (2N-1)
Valor máximo
+ (2N-1 - 1)
byte 8 bits -128 127
short 16 bits -32768 32767
int 32 bits -2147483648 2147483647
long 64 bits -263 263-1
Complemento
a 2
IIP - Curso 2011/12
Tipos numéricos reales
• Por defecto los literales reales son de tipo double.
• Para forzar un tipo float se añade al final F o f.
• Los literales reales o en coma flotante pueden representarse en dos tipos de
notación:
– decimal -123.05 0.2243 0.00000000001
– científica 23.4e2 -1.9E-18 1e-11
29/09/2011 16
Nombre Tamaño
en bits
Valor mínimo Valor máximo Precisión
float 32 bits 1.4 x 10-45 3.4 x 1038 7 dígitos
double 64 bits 4.9 x 10-324 1.8 x 10308 15 dígitos
IEEE 754
IIP - Curso 2011/12
Tipos numéricos reales
• Los bits empleados para la representación de un valor real se dividen en dos
componentes: mantisa y exponente.
Valor = (+|-) mantisa · 2exponente
• Los números reales se caracterizan por dos magnitudes: la precisión y el
intervalo de representación.
• La precisión es el número de dígitos decimales significativos con los que se
puede representar y el intervalo es la diferencia entre el mayor y el menor
número que se pueden representar.
• La precisión de un número real depende del número de bits de su mantisa
mientras que el intervalo depende del número de bits de su exponente.
29/09/2011 17IIP - Curso 2011/12
1 – 0.1 – 0.1 – 0.1 – 0.1 – 0.1 = 0.5000000000000001
1 + (– 0.1 – 0.1 – 0.1 – 0.1 – 0.1) = 0.5
1 – 0.9 = 0.09999999999999998
Compatibilidad y conversión de tipos
• En la asignación, variable y expresión deben ser del mismo tipo de datos o de
tipos compatibles.
• Son conversiones de tipo implícitas o automáticas las siguientes:
29/09/2011 18
byte → short → int → long → float → double
char
IIP - Curso 2011/12
byte e1 = 10; // conversión del int 10 a byte
short e2 = e1; // conversión de byte a short
int e3 = e2; // conversión de short a int
long e4 = e3; // conversión de int a long
float e5 = e4; // conversión de long a float
double e6 = e5; // conversión de float a double
Compatibilidad y conversión de tipos
• La conversión de tipos explícita fuerza la conversión entre tipos: casting.
29/09/2011 19
(tipo) expresión
IIP - Curso 2011/12
double inf = 10.0; // cota inferior del rango de valores
double sup = 20.0; // cota superior del rango de valores
int cantInt = 2; // cantidad de intervalos
double valor = 14.9; // valor real
// Cálculo y escritura del número del intervalo
double tamInt = (sup - inf)/cantInt;
int numInt = (int)((valor - inf)/tamInt);
System.out.print("Número del intervalo al que pertenece ");
System.out.println(valor + " : "+numInt);
// Cálculo y escritura del intervalo
double limInfInt = inf + numInt*tamInt,
limSupInt = inf + (numInt+1)*tamInt;
System.out.println("[" + limInfInt + "," + limSupInt + "[");
Número del intervalo al que pertenece 14.9 : 0
[10.0,15.0[
Se visualiza en pantalla:
a++ ≡ a = a + 1 a+=b ≡ a = a + b
• ++ y -- pueden aparecer en notación prefija o sufija:
++a primero se incrementa el valor de la variable y luego se utiliza
a++ primero se utiliza la variable y luego se incrementa su valor
Operadores aritméticos
29/09/2011 20
Operador Operación Operador Operación
+ Suma o signo += Suma y asignación
- Resta o signo -= Resta y asignación
* Multiplicación *= Multiplicación y asignación
/ División /= División y asignación
% Módulo %= Módulo y asignación
++ Incremento en 1 -- Decremento en 1
IIP - Curso 2011/12
Operadores aritméticos
• El tipo de una expresión con operadores aritméticos y operandos numéricos
depende de los tipos de los operandos involucrados.
• El resultado es de tipo double si, al menos, uno de los operandos es double.
• El resultado es de tipo float si, al menos, uno de los operandos es float y
ninguno es double.
• El resultado es de tipo long si, al menos, uno de los operandos es long y
ninguno es real (float o double).
• El resultado es de tipo int si ninguno de los operandos es long y tampoco es
real (float o double); incluso si ninguno de ellos es de tipo int (como por
ejemplo, cuando en la expresión sólo aparecen operandos de tipo byte, short
o char).
29/09/2011 21IIP - Curso 2011/12
Operadores aritméticos simples
29/09/2011 22IIP - Curso 2011/12
Expresión Resultado Expresión Resultado
Enteros
3 + 5 8 2 * 6 12
7 / 2 3 7 % 2 1
Reales
3.5 + 5.6 9.1 3.1 * 2.0 6.2
15.0 / 2.0 7.5 7.0 % 2.0 1.0
Enteros
Expresión Resultado
5 % 2 1
-5 % 2 -1
5 % -2 1
-5 % -2 -1
64 % 8 0
13 % 20 13
13 % 5 3
Reales
Expresión Resultado
6.5 % 2.5 1.5
-6.5 % 2.5 -1.5
6.5 % -2.5 1.5
-6.5 % -2.5 -1.5
7.5 % 2.5 0.0
5.66 % 20.0 5.66
60 % 4.2 1.1999999999999975
Operadores aritméticos simples
• Si se dividen enteros, el resultado es el cociente entero.
• Si se divide un número entero por cero se produce una excepción (un error en
tiempo de ejecución), terminando de forma brusca la ejecución del programa.
• Si se divide un número en coma flotante por cero no se genera ninguna
excepción, el resultado es Infinity, -Infinity o NaN.
29/09/2011 23
class ejem1 {
public static void main (String[] args) {
int den = 0;
int res = 100/den;
}
}
java ejem1
java.lang.ArithmeticException: / by zero
at ejem1.main(ejem1.java:4)
IIP - Curso 2011/12
Expresión Resultado
5.0 / 0.0 Infinity
-5.0 / 0.0 -Infinity
0.0 / 0.0 NaN
Operadores aritméticos compuestos
29/09/2011 24IIP - Curso 2011/12
long segundos = 765432; // cantidad de segundos
long dias = segundos/(24*60*60);
segundos %= 24*60*60;
System.out.println("Días: " + dias);
System.out.println(" (Segundos restantes: " + segundos + ")");
long horas = segundos/(60*60);
segundos %= 60*60;
System.out.println("Horas: " + horas);
System.out.println(" (Segundos restantes: " + segundos + ")");
long minutos = segundos/60;
segundos %= 60;
System.out.println("Minutos: " + minutos);
System.out.println("Segundos restantes: " + segundos);
Días: 8
(Segundos restantes: 74232)
Horas: 20
(Segundos restantes: 2232)
Minutos: 37
Segundos restantes: 12
Se visualiza en pantalla:
Operadores aritméticos de incremento
y decremento en uno
29/09/2011 25IIP - Curso 2011/12
Instrucción a b
int a = 0; 0
a++; 1
++a; 2
a--; 1
--a; 0
int b = a++; 1 0
b = ++a; 2 2
b = a--; 1 2
b = --a; 0 0
Desbordamiento
• Realizar operaciones con números puede producir que el resultado exceda la
capacidad de representación del tipo. Se habla de desbordamiento.
• En la aritmética entera, cuando se sobrepasa el valor máximo representable se
obtiene un resultado incorrecto.
• Para obtener el resultado correcto hay que tener en cuenta el rango de valores
de cada tipo de dato.
29/09/2011 26
byte 127 + 1 = -128
short 32767 + 1 = -32768
int 2147483647 + 1 = -2147483648
long 9223372036854775807 + 1 = -9223372036854775808
int 1000000 * 1000000 = -727379968
long 1000000 * 1000000 = 1000000000000
IIP - Curso 2011/12
Desbordamiento
• En la aritmética real se producen desbordamientos hacia infinito (overflow) o
hacia cero (underflow).
• Cuando el resultado de una operación está fuera de rango, se obtiene
Infinity o –Infinity.
• Los infinitos se propagan en la evaluación de expresiones.
29/09/2011 27
float 1e38f * 10 Infinity
double 1e308 * 10 Infinity
(5.0 / 0.0) + 166.386 Infinity
IIP - Curso 2011/12
Tipo carácter
• El tipo char permite representar valores consistentes en un único carácter
(letras, números y caracteres especiales).
• Un literal de tipo carácter se representa internamente como un valor entero
positivo (pero sin la representación en complemento a dos).
• Java utiliza el estándar de codificación de caracteres Unicode para asociar a
cada carácter un código numérico. Mediante Unicode es posible representar
millones de caracteres diferentes.
• Cada símbolo Unicode se puede representar físicamente como diferentes
secuencias de bits. Las representaciones más habituales son UTF-8, UTF-16 y
UTF-32. Internamente, Java utiliza UTF-16.
• Los 256 primeros caracteres del Unicode coinciden con los del estándar de 8
bits ASCII/ANSI (American Standard Code for Information Interchange /
American National Standards Institute).
29/09/2011 28
Nombre Tamaño en bits Codificación
char 16 bits Unicode
http://www.unicode.org
http://es.wikipedia.org/wiki/Unicode
UTF-16
IIP - Curso 2011/12
Tipo carácter
• Toda codificación de caracteres debe incluir:
– Códigos que se encuentren contiguos para representar los 10 dígitos,
manteniendo el orden de su valor numérico.
– Códigos contiguos y en orden lexicográfico para representar tanto las
minúsculas como las mayúsculas.
– Un carácter espacio que pueda utilizarse como separador, así como un
carácter de fin de línea y otros caracteres especiales.
– La distancia entre cualquier letra mayúscula y su correspondiente
minúscula es siempre la misma.
• Comprueba que la siguiente tabla cumple estas características.
29/09/2011 29IIP - Curso 2011/12
Tipo carácter
29/09/2011 IIP - Curso 2010/11 30
0 1 2 3 4 5 6 7 8 9 A B C D E F
0
NUL SOH STX ETX EOT ENO ACK BEL BS TAB LF VT FF CR SO SI
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1
DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2
! " # $ % & ' ( ) * + , - . /
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
3
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
4
@ A B C D E F G H I J K L M N O
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
5
P Q R S T U V W X Y Z [  ] ^ _
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
6
` a b c d e f g h i j k l m n o
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
7
p q r s t u v w x y z { | } ~ DEL
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
Tabla ASCII (7 bits) ‘A’ fila 4 columna 1 -> 41 hexadecimal -> 65 decimal
Tipo carácter
• Los literales de tipo carácter se escriben entre comillas simples.
• También pueden representarse utilizando directamente el código Unicode
correspondiente: ucódigo de 4 caracteres en hexadecimal
29/09/2011 31IIP - Curso 2011/12
char aMayuscula=‘A’, zMinuscula =‘z’,
interrogacion = ‘?’, digito0 = ‘0’,
espacioEnBlanco = ‘ ’;
System.out.println(“¡Hola mundo! u00A1Hellou0020worldu0021”);
código Unicode
hexadecimal de !
¡Hola mundo! ¡Hello world!
Se visualiza en pantalla: código Unicode
hexadecimal de !
Tipo carácter
char ch1 = 'A',
char letraB = (char)((int)ch1 + 1);
System.out.println("Letra: " + letraB);
char letraC = 'B' + 1;
System.out.println(((int)letraC) + " Letra: " + letraC);
char letraN = 'u006E';
letraN += 'A' - 'a';
System.out.println("Letra: " + 'u006E' + " y " + letraN);
29/09/2011 32IIP - Curso 2011/12
• Además, como los literales y variables de este tipo se codifican utilizando
números naturales, puede usarse la aritmética de enteros y la conversión
forzada de tipos para operar con ellos.
Letra: B
67 Letra: C
Letra: n y N
Se visualiza en pantalla:
Tipo carácter
• Para representar caracteres de control que no son visibles pero tienen un
efecto especial, se usan secuencias de escape:
29/09/2011 33
Secuencia
de escape
Descripción
t Tabulador
n Avance de línea (new line)
r Retorno de carro (carriage return)
b Retroceso (backspace)
’ Comillas simples
” Comillas dobles
 Barra invertida
IIP - Curso 2011/12
El resultado de la expresión """ + ‘’’
es la cadena formada por los tres caracteres "’
Tipo lógico
• El tipo boolean se utiliza para manipular valores lógicos.
• Sólo existen dos literales lógicos: true y false.
• Una expresión lógica es cualquier expresión que al ser evaluada tiene uno
de los dos valores true o false.
• Las expresiones lógicas o de tipo boolean se construyen a partir de
expresiones de tipo básico con operadores relacionales o de comparación
y a partir de otras expresiones de tipo lógico con operadores lógicos o
booleanos.
29/09/2011 34
Nombre Tamaño
en bits
Valores Significado
boolean 1 bit
true
false
Verdadero
Falso
IIP - Curso 2011/12
Operadores relacionales
• El resultado siempre es un valor de tipo boolean.
• Con operandos de tipo boolean sólo pueden emplearse == y !=.
29/09/2011 35
Operador Operación
== Igual
!= Distinto
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
IIP - Curso 2011/12
int x = 5;
boolean b1 = 6 == x,
b2 = x <= 7,
b3 = (4 + x) > 10,
b4 = 'a' < 'b',
b5 = true == false;
b2 = b3 = 5.5 != 6.3;
Operadores lógicos
• Realizan operaciones sobre datos de tipo boolean y tienen como resultado
un valor de tipo boolean.
• Los operadores lógicos y los cortocircuitados se diferencian en que los
primeros evalúan sus dos argumentos, mientras que los segundos no
continúan con la evaluación si se obtiene el resultado antes de evaluar
toda la expresión.
29/09/2011 36
Operador Operación Significado
! NOT negación lógica
& AND conjunción o `y´ lógico
| OR disyunción u `o´ lógico
^ XOR `o´ exclusivo
&&
AND
cortocircuitado
Si el primer operando es false, el segundo ya no
se evalúa y el resultado es false
||
OR
cortocircuitado
Si el primer operando es true, el segundo ya no
se evalúa y el resultado es true
IIP - Curso 2011/12
5<3 && 5<x se evalúa a false
Operadores lógicos
29/09/2011 37
x y
x && y
x & y
x || y
x | y
x ^ y !x
false false false false false true
false true false true true true
true false false true true false
true true true true false false
• Tablas de verdad
(valor>=15) && (valor<=20) // true si valor en [15,20]
(valor>15) || (valor==15) // true si valor>=15
(x%2 != 1) && (x>=0 && x<5 || x>=10 && x<=20)
// true si x es par y está en el rango [0,5[
// o en el rango [10,20]
IIP - Curso 2011/12
Precedencia de operadores
• Si en una expresión aparecen operaciones del mismo grupo, se evalúan con
asociatividad por la izquierda (de izquierda a derecha). La precedencia puede alterarse
con el uso habitual de los paréntesis.
29/09/2011 IIP - Curso 2011/12 38
Grupo Clasificación Operadores
0 Paréntesis ( )
1 Operadores unarios posfijos (parámetros) expr++ expr--
2 Operadores unarios prefijos ++expr --expr +expr -expr !
3 Creación o conversión new (tipo)expr
4 Multiplicación * / %
5 Suma + -
6 Relacionales > >= < <=
7 Igualdad == !=
8 Conjunción lógica &
9 Disyunción exclusiva ^
10 Disyunción lógica |
11 Conjunción cortocircuitada &&
12 Disyunción cortocircuitada ||
13 Operador ternario ?:
14 Asignación = += -= *= /= %=
+
−
Precedencia de operadores
• Efecto de la asociatividad por la izquierda, la precedencia y el uso de
paréntesis.
29/09/2011 IIP - Curso 2010/11 39
5.4<36%30 || 3*4-6<7 && 32>='a'; // se evalúa a true
(5.4<36%30 || 3*4-6<7) && 32>='a'; // se evalúa a false
Bloques de instrucciones
• El lenguaje Java es un lenguaje orientado a bloques.
• Las instrucciones de un programa aparecen de forma consecutiva. Se trata de
la composición secuencial.
• Las instrucciones se pueden agrupar, constituyendo un bloque.
• Un bloque es una secuencia de instrucciones comprendida entre llaves, { y }.
{
int i=5;
System.out.println(“i vale: “+i);
}
• Pueden anidarse unos dentro de otros: bloques externos (contienen a otros) o
internos (contenidos dentro de otros).
29/09/2011 40IIP - Curso 2011/12
Bloques de instrucciones
• Declaraciones efectuadas al comienzo de un bloque tienen sólo validez en el
interior del mismo (incluso en bloques internos).
• En distintos bloques anidados no se pueden definir identificadores con el
mismo nombre (error de compilación).
29/09/2011 41
{
int dia=10, mes=12, anyo=2000;
{
// int dia=30; --> si se descomenta, error de compilación
double temperatura = 36.8;
System.out.println(dia); // se escribe 10
System.out.println(mes); // se escribe 12
}
System.out.println(dia); // se escribe 10
// temperatura no se puede referenciar aquí
}
IIP - Curso 2011/12
Bloques de instrucciones
• El ámbito de una variable es la parte del programa en la que es conocida y
puede ser utilizada.
• Una variable es local en el bloque en el que se define y global para los bloques
internos a éste.
• Reglas relacionadas con el concepto de bloque y el uso de variables:
– Todas las variables definidas en el mismo bloque deben tener nombres
diferentes.
– Una variable definida en un bloque es conocida desde su definición hasta
el final del bloque.
– Una variable definida en un bloque es conocida en todos los bloques
internos a éste.
– Las variables se deben definir al comienzo del bloque más interno en el
que se utilizan.
29/09/2011 42IIP - Curso 2011/12

More Related Content

What's hot (19)

Presentacion2
Presentacion2Presentacion2
Presentacion2
 
Tipos de datos variables expresiones
Tipos de datos variables expresionesTipos de datos variables expresiones
Tipos de datos variables expresiones
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 1 algoritmos y programas
Unidad 1 algoritmos y programasUnidad 1 algoritmos y programas
Unidad 1 algoritmos y programas
 
Algoritmica
AlgoritmicaAlgoritmica
Algoritmica
 
Poo
PooPoo
Poo
 
Clase1
Clase1Clase1
Clase1
 
clases de herramientas lorenita
clases de herramientas lorenitaclases de herramientas lorenita
clases de herramientas lorenita
 
Tipos de datos, identificadores, variables y constantes
Tipos de datos, identificadores,  variables y constantesTipos de datos, identificadores,  variables y constantes
Tipos de datos, identificadores, variables y constantes
 
Identificadores, variables y constantes
Identificadores, variables y constantesIdentificadores, variables y constantes
Identificadores, variables y constantes
 
Programación
ProgramaciónProgramación
Programación
 
Tipos de Datos y Operadores
Tipos de Datos y OperadoresTipos de Datos y Operadores
Tipos de Datos y Operadores
 
Java
JavaJava
Java
 
Java
JavaJava
Java
 
Presentación4 (2)
Presentación4 (2)Presentación4 (2)
Presentación4 (2)
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Trabajo de computacion
Trabajo de computacionTrabajo de computacion
Trabajo de computacion
 

Viewers also liked

Introducción a la programación en c++
Introducción a la programación en c++Introducción a la programación en c++
Introducción a la programación en c++empirreamm
 
Introducción a C++
Introducción a C++Introducción a C++
Introducción a C++Ryoga Luis
 
Introducción a la programación y la informática. Tema 9
Introducción a la programación y la informática. Tema 9Introducción a la programación y la informática. Tema 9
Introducción a la programación y la informática. Tema 9Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 8
Introducción a la programación y la informática. Tema 8Introducción a la programación y la informática. Tema 8
Introducción a la programación y la informática. Tema 8Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2Andres Garcia Garcia
 
Introducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De ProgramacionIntroducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De ProgramacionAndres Garcia
 
Diagrama estructurado-pseudocódigo
Diagrama estructurado-pseudocódigoDiagrama estructurado-pseudocódigo
Diagrama estructurado-pseudocódigoValeria Ramón Vega
 
Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1Andres Garcia Garcia
 
PRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓNPRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓNadark
 
User Interface Testing | Best Practices
User Interface Testing | Best Practices User Interface Testing | Best Practices
User Interface Testing | Best Practices David Tzemach
 
UI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected JourneyUI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected JourneyOren Farhi
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Andres Garcia Garcia
 

Viewers also liked (20)

Introduccion
IntroduccionIntroduccion
Introduccion
 
Introducción a la programación en c++
Introducción a la programación en c++Introducción a la programación en c++
Introducción a la programación en c++
 
Introducción a Programación 3
Introducción a Programación 3Introducción a Programación 3
Introducción a Programación 3
 
Introducción a C++
Introducción a C++Introducción a C++
Introducción a C++
 
Introducción a la programación y la informática. Tema 9
Introducción a la programación y la informática. Tema 9Introducción a la programación y la informática. Tema 9
Introducción a la programación y la informática. Tema 9
 
Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5
 
Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7
 
Introducción a la programación y la informática. Tema 8
Introducción a la programación y la informática. Tema 8Introducción a la programación y la informática. Tema 8
Introducción a la programación y la informática. Tema 8
 
Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4
 
Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6
 
Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2
 
Introducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De ProgramacionIntroducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De Programacion
 
Diagrama estructurado-pseudocódigo
Diagrama estructurado-pseudocódigoDiagrama estructurado-pseudocódigo
Diagrama estructurado-pseudocódigo
 
codeblocks1
codeblocks1codeblocks1
codeblocks1
 
Introducción al lenguaje c++
Introducción al lenguaje c++Introducción al lenguaje c++
Introducción al lenguaje c++
 
Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1
 
PRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓNPRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓN
 
User Interface Testing | Best Practices
User Interface Testing | Best Practices User Interface Testing | Best Practices
User Interface Testing | Best Practices
 
UI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected JourneyUI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected Journey
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10
 

Similar to Introducción a la programación y la informática. Tema 3

conceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfconceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfcarlosquiza2
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programaDavid Tuarez
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programaDavid Tuarez
 
Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2David Tuarez
 
Tipos de dato y expresiones en C++
Tipos de dato y expresiones en C++Tipos de dato y expresiones en C++
Tipos de dato y expresiones en C++Obmaro García
 
Tiposdedatos 091026085500-phpapp02
Tiposdedatos 091026085500-phpapp02Tiposdedatos 091026085500-phpapp02
Tiposdedatos 091026085500-phpapp02Luifer Herrera
 
Algoritmos y programas 1
Algoritmos y programas 1Algoritmos y programas 1
Algoritmos y programas 1Esteban Bedoya
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datoslensh
 
6. entidades primitivas para el diseño de instrucciones
6. entidades primitivas para el diseño de instrucciones6. entidades primitivas para el diseño de instrucciones
6. entidades primitivas para el diseño de instruccionesrcarrerah
 
Computacion Grupo 2
Computacion Grupo 2Computacion Grupo 2
Computacion Grupo 2josued097
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programamanuel tenezaca
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacionCarlos Chevez
 
3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y ConstantesYenny Salazar
 
Conceptos basicos de programación.pdf
Conceptos basicos de programación.pdfConceptos basicos de programación.pdf
Conceptos basicos de programación.pdfJuancamiloZuiga4
 

Similar to Introducción a la programación y la informática. Tema 3 (20)

Unidad i poo
Unidad i pooUnidad i poo
Unidad i poo
 
conceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfconceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdf
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programa
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programa
 
Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2
 
Tipos de dato y expresiones en C++
Tipos de dato y expresiones en C++Tipos de dato y expresiones en C++
Tipos de dato y expresiones en C++
 
Unidad 1.1 PROGRAMACION I
Unidad 1.1  PROGRAMACION IUnidad 1.1  PROGRAMACION I
Unidad 1.1 PROGRAMACION I
 
Tiposdedatos 091026085500-phpapp02
Tiposdedatos 091026085500-phpapp02Tiposdedatos 091026085500-phpapp02
Tiposdedatos 091026085500-phpapp02
 
Algoritmos y programas 1
Algoritmos y programas 1Algoritmos y programas 1
Algoritmos y programas 1
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
6. entidades primitivas para el diseño de instrucciones
6. entidades primitivas para el diseño de instrucciones6. entidades primitivas para el diseño de instrucciones
6. entidades primitivas para el diseño de instrucciones
 
Computacion Grupo 2
Computacion Grupo 2Computacion Grupo 2
Computacion Grupo 2
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programa
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacion
 
3.1.- Tipo de Datos
3.1.- Tipo de Datos3.1.- Tipo de Datos
3.1.- Tipo de Datos
 
3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes
 
Tecnologia.pdf
Tecnologia.pdfTecnologia.pdf
Tecnologia.pdf
 
Conceptos basicos de programación.pdf
Conceptos basicos de programación.pdfConceptos basicos de programación.pdf
Conceptos basicos de programación.pdf
 
Tecnologia.pdf
Tecnologia.pdfTecnologia.pdf
Tecnologia.pdf
 
Tecnologia PSEINT.pdf
Tecnologia PSEINT.pdfTecnologia PSEINT.pdf
Tecnologia PSEINT.pdf
 

Recently uploaded

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 

Recently uploaded (20)

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 

Introducción a la programación y la informática. Tema 3

  • 1. Tema 3. Variables y asignación. Tipos de datos elementales. Bloques Introducción a la Informática y la Programación (IIP) Curso 2011/12 Departamento de Sistemas Informáticos y Computación
  • 2. Contenidos 1. Tipos de datos 2. Variables 3. Expresiones y asignación. 4. Constantes. Modificador final 5. Consideraciones sintácticas sobre el uso de identificadores 6. Tipos numéricos  Enteros  Reales  Compatibilidad y conversión de tipos  Operadores aritméticos  Desbordamiento 7. Tipo carácter 8. Tipo lógico  Operadores relacionales  Operadores lógicos 9. Precedencia de operadores 10. Bloques de instrucciones 29/09/2011 IIP - Curso 2011/12 2
  • 3. Tipos de datos • Un dato es cualquier información dispuesta de manera adecuada para su tratamiento por un ordenador. • Un tipo de datos define: – un conjunto de valores y – el conjunto de operaciones permitidas sobre ellos. • Los tipos de datos en Java se clasifican en: – Tipos elementales o primitivos: no se definen a partir de otros y su representación y operaciones vienen dadas por el propio lenguaje. – Tipos complejos o estructurados (referencia): agregación de datos del mismo o de distinto tipo. • predefinidos • definidos por el programador 29/09/2011 3 byte, short, int, long, float, double, char, boolean Scanner, String, etc. IIP - Curso 2011/12 Circulo, Pizarra, etc.
  • 4. Variables • Todos los datos que se manejan en la resolución de un problema mediante un programa se representan mediante variables. • Una variable se caracteriza por ser de un tipo de datos que determina: – el conjunto de valores que puede almacenar, – el conjunto de operaciones permitidas sobre ellos y – el tamaño de la zona de memoria que pueden ocupar. • Según el uso que se vaya a hacer de la variable, éstas se pueden clasificar como: – Atributos o variables de instancia y de clase que se definen en una Clase- Tipo de dato. – Variables locales que son las que se definen en el método main de una Clase-Programa o en cualquier bloque de instrucciones o método. – Parámetros de un método. 29/09/2011 4IIP - Curso 2011/12
  • 5. Variables 29/09/2011 IIP - Curso 2011/12 5 public class Circulo { private double radio ; private String color ; private int centroX , centroY ; ... public void setRadio(double nuevoRadio) { radio = nuevoRadio; } } public class PrimerPrograma { public static void main (String[] args ) { Pizarra miPizarra = new Pizarra("ESPACIO DIBUJO",300,300); Circulo c1 = new Circulo(50,"amarillo",100,100); ... } } variables de instancia parámetro parámetro variables locales
  • 6. Variables • Declaración de variable: descripción de sus características, definiendo su identificador y tipo de datos que restringe sus valores y las operaciones que se pueden realizar. • Java es un lenguaje fuertemente tipado, exige la declaración de todas las variables antes de su uso. • Sintaxis: • Ejemplos: • Un atributo y una variable local se distinguen por el lugar donde se definen: clases o métodos. Sólo los atributos pueden ir precedidos por los modificadores de visibilidad y ámbito. 29/09/2011 6 tipo nomvar1, nomvar2, … , nomvarn ; int var1, var2, suma; char c; double d1, d2; IIP - Curso 2011/12
  • 7. Variables • El compilador asigna valores por defecto a los atributos pero no a las variables locales (error de compilación). • Las variables pueden cambiar de valor. Se denomina estado de una variable a su contenido en un determinado momento de la ejecución. • La ejecución de un programa se puede ver como una sucesión de cambios de estado que transforman un cierto estado inicial (datos) en un determinado estado final (solución). • El estado de un programa es el contenido de sus variables en un momento de la ejecución. • La traza de la ejecución de un programa es el seguimiento de la evolución de los valores de las variables en una ejecución. 29/09/2011 7IIP - Curso 2011/12
  • 8. Expresiones y asignación • La asignación se utiliza para dar valores a las variables o para reemplazar los valores que ya tienen por otros nuevos. donde identificador y expresión deben ser de tipos compatibles. • Una expresión es una sucesión (sintácticamente correcta) de valores, variables, operadores y llamadas a métodos que se evalúa a un único valor, siendo el tipo de la expresión el tipo de este valor. • La operación de asignación evalúa la expresión y después guarda el valor resultante en la variable identificador. • La propia asignación se evalúa a un resultado que puede ser o no utilizado. 29/09/2011 8 identificador = expresión; IIP - Curso 2011/12 int cantidadInicial; cantidadInicial = 50; int cantidadReal, cantidadInicial; cantidadReal = cantidadInicial = 50;
  • 9. Expresiones y asignación • En el momento de su declaración, se puede asignar a las variables un valor inicial, esto es, se pueden inicializar. • El contenido de la variable se pierde cuando se le asigna uno nuevo. 29/09/2011 9 int var1, var2, suma = 5; char ch1, ch2 = ‘u’; double d1 = 2.0, d2 = 3.0 + d1; var1 = 15; suma = suma + 2; IIP - Curso 2011/12 int x = 5, y = 9; int aux = x; x = y; y = aux; (1) (2) (3) (4)
  • 10. Constantes. Modificador final • Una constante es una variable inmutable: su valor no puede cambiar durante la ejecución. • Las constantes igual que las variables tienen un tipo de datos asignado y se definen igual que cuando se declara una variable y se inicializa su valor. 29/09/2011 10 final tipo identificador = Valor; final int NUM_ALUMNOS = 25; IIP - Curso 2011/12
  • 11. Consideraciones sintácticas sobre el uso de identificadores • Convenciones de codificación en Java: • Los identificadores son nombres que el programador da a variables, métodos y clases. Deben comenzar por una letra y, a continuación, cualquier combinación de letras, números, el carácter subrayado _ y el signo de dólar $. • Java es sensible a las mayúsculas: distingue MAYÚSCULAS de minúsculas. 29/09/2011 11 Ejemplos válidos radio, MAX_VALOR, dato1, año, día, ∏ Ejemplos no válidos 5esfera, mi valor, una.variable www.programacion.com/java/tutorial/convenciones/ IIP - Curso 2011/12 toString es distinto de tostring
  • 12. • Es conveniente utilizar identificadores descriptivos de manera que la lectura del código permita conocer su significado. • Los identificadores de variables suelen ir en minúsculas. Si el identificador está formado por varias palabras, la primera palabra va en minúsculas y el resto de palabras comienza por una mayúscula. • Los identificadores de constantes se suelen poner en mayúsculas. Si el identificador consta de más de una palabra, se separan por el signo de subrayado. 29/09/2011 12 suma, toString, cantidadInicial, cantidadReal radioEsfera, volumenCubo final double PI = 3.141592; final int MAX_ALUMNOS = 25; IIP - Curso 2011/12 Consideraciones sintácticas sobre el uso de identificadores
  • 13. • Las palabras reservadas tienen un significado preestablecido y no pueden usarse como identificadores. Tampoco pueden usarse como identificadores null, true y false. 29/09/2011 13 * No se utilizan abstract continue for new switch assert default goto* package synchronized boolean do if private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const* float native super while IIP - Curso 2011/12 Consideraciones sintácticas sobre el uso de identificadores
  • 14. Tipos de datos primitivos en Java Tipos de datos elementales Nombre Tipos numéricos - números enteros - números reales (en coma flotante) byte, short, int, long float, double Tipo carácter char Tipo lógico boolean 29/09/2011 14 • A diferencia de lo que ocurre en otros lenguajes, los tipos básicos en Java siempre tienen los mismos tamaños y capacidades, independientemente del entorno en el que se trabaje. IIP - Curso 2011/12
  • 15. Tipos numéricos enteros • Por defecto los literales enteros son de tipo int. • Para forzar que un entero se interprete como un long se añade al final L o l. • Los literales enteros pueden expresarse en: – decimal 193 – octal 0301 (3*82 + 0*81 + 1*80 = 3*64 + 1 =193) – hexadecimal 0xC1 (C*161 + 1*160 = 12*16 + 1 = 193) 29/09/2011 15 Nombre Tamaño en bits Valor mínimo ̶ (2N-1) Valor máximo + (2N-1 - 1) byte 8 bits -128 127 short 16 bits -32768 32767 int 32 bits -2147483648 2147483647 long 64 bits -263 263-1 Complemento a 2 IIP - Curso 2011/12
  • 16. Tipos numéricos reales • Por defecto los literales reales son de tipo double. • Para forzar un tipo float se añade al final F o f. • Los literales reales o en coma flotante pueden representarse en dos tipos de notación: – decimal -123.05 0.2243 0.00000000001 – científica 23.4e2 -1.9E-18 1e-11 29/09/2011 16 Nombre Tamaño en bits Valor mínimo Valor máximo Precisión float 32 bits 1.4 x 10-45 3.4 x 1038 7 dígitos double 64 bits 4.9 x 10-324 1.8 x 10308 15 dígitos IEEE 754 IIP - Curso 2011/12
  • 17. Tipos numéricos reales • Los bits empleados para la representación de un valor real se dividen en dos componentes: mantisa y exponente. Valor = (+|-) mantisa · 2exponente • Los números reales se caracterizan por dos magnitudes: la precisión y el intervalo de representación. • La precisión es el número de dígitos decimales significativos con los que se puede representar y el intervalo es la diferencia entre el mayor y el menor número que se pueden representar. • La precisión de un número real depende del número de bits de su mantisa mientras que el intervalo depende del número de bits de su exponente. 29/09/2011 17IIP - Curso 2011/12 1 – 0.1 – 0.1 – 0.1 – 0.1 – 0.1 = 0.5000000000000001 1 + (– 0.1 – 0.1 – 0.1 – 0.1 – 0.1) = 0.5 1 – 0.9 = 0.09999999999999998
  • 18. Compatibilidad y conversión de tipos • En la asignación, variable y expresión deben ser del mismo tipo de datos o de tipos compatibles. • Son conversiones de tipo implícitas o automáticas las siguientes: 29/09/2011 18 byte → short → int → long → float → double char IIP - Curso 2011/12 byte e1 = 10; // conversión del int 10 a byte short e2 = e1; // conversión de byte a short int e3 = e2; // conversión de short a int long e4 = e3; // conversión de int a long float e5 = e4; // conversión de long a float double e6 = e5; // conversión de float a double
  • 19. Compatibilidad y conversión de tipos • La conversión de tipos explícita fuerza la conversión entre tipos: casting. 29/09/2011 19 (tipo) expresión IIP - Curso 2011/12 double inf = 10.0; // cota inferior del rango de valores double sup = 20.0; // cota superior del rango de valores int cantInt = 2; // cantidad de intervalos double valor = 14.9; // valor real // Cálculo y escritura del número del intervalo double tamInt = (sup - inf)/cantInt; int numInt = (int)((valor - inf)/tamInt); System.out.print("Número del intervalo al que pertenece "); System.out.println(valor + " : "+numInt); // Cálculo y escritura del intervalo double limInfInt = inf + numInt*tamInt, limSupInt = inf + (numInt+1)*tamInt; System.out.println("[" + limInfInt + "," + limSupInt + "["); Número del intervalo al que pertenece 14.9 : 0 [10.0,15.0[ Se visualiza en pantalla:
  • 20. a++ ≡ a = a + 1 a+=b ≡ a = a + b • ++ y -- pueden aparecer en notación prefija o sufija: ++a primero se incrementa el valor de la variable y luego se utiliza a++ primero se utiliza la variable y luego se incrementa su valor Operadores aritméticos 29/09/2011 20 Operador Operación Operador Operación + Suma o signo += Suma y asignación - Resta o signo -= Resta y asignación * Multiplicación *= Multiplicación y asignación / División /= División y asignación % Módulo %= Módulo y asignación ++ Incremento en 1 -- Decremento en 1 IIP - Curso 2011/12
  • 21. Operadores aritméticos • El tipo de una expresión con operadores aritméticos y operandos numéricos depende de los tipos de los operandos involucrados. • El resultado es de tipo double si, al menos, uno de los operandos es double. • El resultado es de tipo float si, al menos, uno de los operandos es float y ninguno es double. • El resultado es de tipo long si, al menos, uno de los operandos es long y ninguno es real (float o double). • El resultado es de tipo int si ninguno de los operandos es long y tampoco es real (float o double); incluso si ninguno de ellos es de tipo int (como por ejemplo, cuando en la expresión sólo aparecen operandos de tipo byte, short o char). 29/09/2011 21IIP - Curso 2011/12
  • 22. Operadores aritméticos simples 29/09/2011 22IIP - Curso 2011/12 Expresión Resultado Expresión Resultado Enteros 3 + 5 8 2 * 6 12 7 / 2 3 7 % 2 1 Reales 3.5 + 5.6 9.1 3.1 * 2.0 6.2 15.0 / 2.0 7.5 7.0 % 2.0 1.0 Enteros Expresión Resultado 5 % 2 1 -5 % 2 -1 5 % -2 1 -5 % -2 -1 64 % 8 0 13 % 20 13 13 % 5 3 Reales Expresión Resultado 6.5 % 2.5 1.5 -6.5 % 2.5 -1.5 6.5 % -2.5 1.5 -6.5 % -2.5 -1.5 7.5 % 2.5 0.0 5.66 % 20.0 5.66 60 % 4.2 1.1999999999999975
  • 23. Operadores aritméticos simples • Si se dividen enteros, el resultado es el cociente entero. • Si se divide un número entero por cero se produce una excepción (un error en tiempo de ejecución), terminando de forma brusca la ejecución del programa. • Si se divide un número en coma flotante por cero no se genera ninguna excepción, el resultado es Infinity, -Infinity o NaN. 29/09/2011 23 class ejem1 { public static void main (String[] args) { int den = 0; int res = 100/den; } } java ejem1 java.lang.ArithmeticException: / by zero at ejem1.main(ejem1.java:4) IIP - Curso 2011/12 Expresión Resultado 5.0 / 0.0 Infinity -5.0 / 0.0 -Infinity 0.0 / 0.0 NaN
  • 24. Operadores aritméticos compuestos 29/09/2011 24IIP - Curso 2011/12 long segundos = 765432; // cantidad de segundos long dias = segundos/(24*60*60); segundos %= 24*60*60; System.out.println("Días: " + dias); System.out.println(" (Segundos restantes: " + segundos + ")"); long horas = segundos/(60*60); segundos %= 60*60; System.out.println("Horas: " + horas); System.out.println(" (Segundos restantes: " + segundos + ")"); long minutos = segundos/60; segundos %= 60; System.out.println("Minutos: " + minutos); System.out.println("Segundos restantes: " + segundos); Días: 8 (Segundos restantes: 74232) Horas: 20 (Segundos restantes: 2232) Minutos: 37 Segundos restantes: 12 Se visualiza en pantalla:
  • 25. Operadores aritméticos de incremento y decremento en uno 29/09/2011 25IIP - Curso 2011/12 Instrucción a b int a = 0; 0 a++; 1 ++a; 2 a--; 1 --a; 0 int b = a++; 1 0 b = ++a; 2 2 b = a--; 1 2 b = --a; 0 0
  • 26. Desbordamiento • Realizar operaciones con números puede producir que el resultado exceda la capacidad de representación del tipo. Se habla de desbordamiento. • En la aritmética entera, cuando se sobrepasa el valor máximo representable se obtiene un resultado incorrecto. • Para obtener el resultado correcto hay que tener en cuenta el rango de valores de cada tipo de dato. 29/09/2011 26 byte 127 + 1 = -128 short 32767 + 1 = -32768 int 2147483647 + 1 = -2147483648 long 9223372036854775807 + 1 = -9223372036854775808 int 1000000 * 1000000 = -727379968 long 1000000 * 1000000 = 1000000000000 IIP - Curso 2011/12
  • 27. Desbordamiento • En la aritmética real se producen desbordamientos hacia infinito (overflow) o hacia cero (underflow). • Cuando el resultado de una operación está fuera de rango, se obtiene Infinity o –Infinity. • Los infinitos se propagan en la evaluación de expresiones. 29/09/2011 27 float 1e38f * 10 Infinity double 1e308 * 10 Infinity (5.0 / 0.0) + 166.386 Infinity IIP - Curso 2011/12
  • 28. Tipo carácter • El tipo char permite representar valores consistentes en un único carácter (letras, números y caracteres especiales). • Un literal de tipo carácter se representa internamente como un valor entero positivo (pero sin la representación en complemento a dos). • Java utiliza el estándar de codificación de caracteres Unicode para asociar a cada carácter un código numérico. Mediante Unicode es posible representar millones de caracteres diferentes. • Cada símbolo Unicode se puede representar físicamente como diferentes secuencias de bits. Las representaciones más habituales son UTF-8, UTF-16 y UTF-32. Internamente, Java utiliza UTF-16. • Los 256 primeros caracteres del Unicode coinciden con los del estándar de 8 bits ASCII/ANSI (American Standard Code for Information Interchange / American National Standards Institute). 29/09/2011 28 Nombre Tamaño en bits Codificación char 16 bits Unicode http://www.unicode.org http://es.wikipedia.org/wiki/Unicode UTF-16 IIP - Curso 2011/12
  • 29. Tipo carácter • Toda codificación de caracteres debe incluir: – Códigos que se encuentren contiguos para representar los 10 dígitos, manteniendo el orden de su valor numérico. – Códigos contiguos y en orden lexicográfico para representar tanto las minúsculas como las mayúsculas. – Un carácter espacio que pueda utilizarse como separador, así como un carácter de fin de línea y otros caracteres especiales. – La distancia entre cualquier letra mayúscula y su correspondiente minúscula es siempre la misma. • Comprueba que la siguiente tabla cumple estas características. 29/09/2011 29IIP - Curso 2011/12
  • 30. Tipo carácter 29/09/2011 IIP - Curso 2010/11 30 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 NUL SOH STX ETX EOT ENO ACK BEL BS TAB LF VT FF CR SO SI 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2 ! " # $ % & ' ( ) * + , - . / 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 3 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 4 @ A B C D E F G H I J K L M N O 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 5 P Q R S T U V W X Y Z [ ] ^ _ 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 6 ` a b c d e f g h i j k l m n o 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 7 p q r s t u v w x y z { | } ~ DEL 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 Tabla ASCII (7 bits) ‘A’ fila 4 columna 1 -> 41 hexadecimal -> 65 decimal
  • 31. Tipo carácter • Los literales de tipo carácter se escriben entre comillas simples. • También pueden representarse utilizando directamente el código Unicode correspondiente: ucódigo de 4 caracteres en hexadecimal 29/09/2011 31IIP - Curso 2011/12 char aMayuscula=‘A’, zMinuscula =‘z’, interrogacion = ‘?’, digito0 = ‘0’, espacioEnBlanco = ‘ ’; System.out.println(“¡Hola mundo! u00A1Hellou0020worldu0021”); código Unicode hexadecimal de ! ¡Hola mundo! ¡Hello world! Se visualiza en pantalla: código Unicode hexadecimal de !
  • 32. Tipo carácter char ch1 = 'A', char letraB = (char)((int)ch1 + 1); System.out.println("Letra: " + letraB); char letraC = 'B' + 1; System.out.println(((int)letraC) + " Letra: " + letraC); char letraN = 'u006E'; letraN += 'A' - 'a'; System.out.println("Letra: " + 'u006E' + " y " + letraN); 29/09/2011 32IIP - Curso 2011/12 • Además, como los literales y variables de este tipo se codifican utilizando números naturales, puede usarse la aritmética de enteros y la conversión forzada de tipos para operar con ellos. Letra: B 67 Letra: C Letra: n y N Se visualiza en pantalla:
  • 33. Tipo carácter • Para representar caracteres de control que no son visibles pero tienen un efecto especial, se usan secuencias de escape: 29/09/2011 33 Secuencia de escape Descripción t Tabulador n Avance de línea (new line) r Retorno de carro (carriage return) b Retroceso (backspace) ’ Comillas simples ” Comillas dobles Barra invertida IIP - Curso 2011/12 El resultado de la expresión """ + ‘’’ es la cadena formada por los tres caracteres "’
  • 34. Tipo lógico • El tipo boolean se utiliza para manipular valores lógicos. • Sólo existen dos literales lógicos: true y false. • Una expresión lógica es cualquier expresión que al ser evaluada tiene uno de los dos valores true o false. • Las expresiones lógicas o de tipo boolean se construyen a partir de expresiones de tipo básico con operadores relacionales o de comparación y a partir de otras expresiones de tipo lógico con operadores lógicos o booleanos. 29/09/2011 34 Nombre Tamaño en bits Valores Significado boolean 1 bit true false Verdadero Falso IIP - Curso 2011/12
  • 35. Operadores relacionales • El resultado siempre es un valor de tipo boolean. • Con operandos de tipo boolean sólo pueden emplearse == y !=. 29/09/2011 35 Operador Operación == Igual != Distinto > Mayor que >= Mayor o igual que < Menor que <= Menor o igual que IIP - Curso 2011/12 int x = 5; boolean b1 = 6 == x, b2 = x <= 7, b3 = (4 + x) > 10, b4 = 'a' < 'b', b5 = true == false; b2 = b3 = 5.5 != 6.3;
  • 36. Operadores lógicos • Realizan operaciones sobre datos de tipo boolean y tienen como resultado un valor de tipo boolean. • Los operadores lógicos y los cortocircuitados se diferencian en que los primeros evalúan sus dos argumentos, mientras que los segundos no continúan con la evaluación si se obtiene el resultado antes de evaluar toda la expresión. 29/09/2011 36 Operador Operación Significado ! NOT negación lógica & AND conjunción o `y´ lógico | OR disyunción u `o´ lógico ^ XOR `o´ exclusivo && AND cortocircuitado Si el primer operando es false, el segundo ya no se evalúa y el resultado es false || OR cortocircuitado Si el primer operando es true, el segundo ya no se evalúa y el resultado es true IIP - Curso 2011/12 5<3 && 5<x se evalúa a false
  • 37. Operadores lógicos 29/09/2011 37 x y x && y x & y x || y x | y x ^ y !x false false false false false true false true false true true true true false false true true false true true true true false false • Tablas de verdad (valor>=15) && (valor<=20) // true si valor en [15,20] (valor>15) || (valor==15) // true si valor>=15 (x%2 != 1) && (x>=0 && x<5 || x>=10 && x<=20) // true si x es par y está en el rango [0,5[ // o en el rango [10,20] IIP - Curso 2011/12
  • 38. Precedencia de operadores • Si en una expresión aparecen operaciones del mismo grupo, se evalúan con asociatividad por la izquierda (de izquierda a derecha). La precedencia puede alterarse con el uso habitual de los paréntesis. 29/09/2011 IIP - Curso 2011/12 38 Grupo Clasificación Operadores 0 Paréntesis ( ) 1 Operadores unarios posfijos (parámetros) expr++ expr-- 2 Operadores unarios prefijos ++expr --expr +expr -expr ! 3 Creación o conversión new (tipo)expr 4 Multiplicación * / % 5 Suma + - 6 Relacionales > >= < <= 7 Igualdad == != 8 Conjunción lógica & 9 Disyunción exclusiva ^ 10 Disyunción lógica | 11 Conjunción cortocircuitada && 12 Disyunción cortocircuitada || 13 Operador ternario ?: 14 Asignación = += -= *= /= %= + −
  • 39. Precedencia de operadores • Efecto de la asociatividad por la izquierda, la precedencia y el uso de paréntesis. 29/09/2011 IIP - Curso 2010/11 39 5.4<36%30 || 3*4-6<7 && 32>='a'; // se evalúa a true (5.4<36%30 || 3*4-6<7) && 32>='a'; // se evalúa a false
  • 40. Bloques de instrucciones • El lenguaje Java es un lenguaje orientado a bloques. • Las instrucciones de un programa aparecen de forma consecutiva. Se trata de la composición secuencial. • Las instrucciones se pueden agrupar, constituyendo un bloque. • Un bloque es una secuencia de instrucciones comprendida entre llaves, { y }. { int i=5; System.out.println(“i vale: “+i); } • Pueden anidarse unos dentro de otros: bloques externos (contienen a otros) o internos (contenidos dentro de otros). 29/09/2011 40IIP - Curso 2011/12
  • 41. Bloques de instrucciones • Declaraciones efectuadas al comienzo de un bloque tienen sólo validez en el interior del mismo (incluso en bloques internos). • En distintos bloques anidados no se pueden definir identificadores con el mismo nombre (error de compilación). 29/09/2011 41 { int dia=10, mes=12, anyo=2000; { // int dia=30; --> si se descomenta, error de compilación double temperatura = 36.8; System.out.println(dia); // se escribe 10 System.out.println(mes); // se escribe 12 } System.out.println(dia); // se escribe 10 // temperatura no se puede referenciar aquí } IIP - Curso 2011/12
  • 42. Bloques de instrucciones • El ámbito de una variable es la parte del programa en la que es conocida y puede ser utilizada. • Una variable es local en el bloque en el que se define y global para los bloques internos a éste. • Reglas relacionadas con el concepto de bloque y el uso de variables: – Todas las variables definidas en el mismo bloque deben tener nombres diferentes. – Una variable definida en un bloque es conocida desde su definición hasta el final del bloque. – Una variable definida en un bloque es conocida en todos los bloques internos a éste. – Las variables se deben definir al comienzo del bloque más interno en el que se utilizan. 29/09/2011 42IIP - Curso 2011/12