Este documento introduce los tipos de datos fundamentales en Java, incluyendo tipos numéricos (enteros y reales), tipo carácter y tipo lógico. Explica las variables, constantes, expresiones y asignación. También cubre temas como compatibilidad y conversión de tipos, operadores aritméticos y de comparación, y bloques de instrucciones.
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
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
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