2.1. Sintaxis básica.pptx

Anuncio
18/01/12 Contenidos Sintaxis básica, variables y 7pos Curso de Programación en Java Jesús Montes Sánchez jmontes@fi.upm.es !   Sintaxis básica !   Variables y 7pos !   Entrada/Salida básica !   Operadores y expresiones Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Estructura de un programa Java !   Un programa en Java es un conjunto de archivos .java que con7enen la implementación de una o mas clases java Sintaxis básica !   El programa debe tener una clase principal, que defina un punto de entrada !   Cuando se ejecuta el programa, la JVM ejecuta el punto de entrada de la clase principal Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Clase principal Programa de ejemplo !   Se indica como parámetro cuando se ejecuta la JVM // Esto es un comentario de una linea
!   Debe haber sido compilada y su fichero .class debe exis7r dentro del CLASSPATH */
!   Posee un punto de entrada public class holaMundo {
/*
// Clase holaMundo
!   Comienza con las palabras reservadas Comentarios Esto es un comentario de
multiples lineas
Clase principal /* El metodo main es el punto de comienzo del programa */
public static void main (String[] args) public static void main(String[] args) {
!   Seguido de esto hay un bloque { } que con7ene el código que se ejecuta al comenzar el programa. System.out.println("Hola mundo");
}
}
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Punto de entrada Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) 1 18/01/12 Comentarios Bloques de código !   Sirven para explicar porciones del código a nosotros mismos (para el futuro) y a otros !   Zonas de texto entre { } !   Sucesión de sentencias sentencia1;
!   Muy ú7l en zonas complejas !   Las sentencias terminan en ; sentencia2;
!   Tan importante como escribir buen código !   Ignorado por el compilador !   Preferiblemente una sentencia por línea !   De una línea: precedido por // !   Se pueden anidar bloques {
{
// Comentario
sentencia3;
}
!   Múl7ples líneas: entre /* y */ }
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Otros elementos del lenguaje !   Palabras reservadas !   Palabras propias del lenguaje Java !   Con significado específico !   El resaltado de sintaxis las iden7fica !
Variables y 7pos class, public, void, int… !   Sensibilidad a mayúsculas y minúsculas (case sensi4ve) !   Java hace dis7nción entre mayúsculas y minúsculas !   Importante tanto para palabras reservadas como para iden7ficadores Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Variables Tipo y valor !   Representan can7dades, cualidades y/o objetos del programa !   Es una región de memoria donde se guarda un valor que posteriormente será u7lizado por el programa !   Antes de usarlas debemos declararlas para que el compilador conozca: !   Su nombre !   Su ámbito de vida !   Su visibilidad !   Su 7po asociado Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Tipo:
Valor:
Zapatos El par de zapatos concreto que contenga Tipo:
Valor: Líquido El líquido concreto que contenga Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) 2 18/01/12 Declaración de variables !   Simple tipo identificador;
!   Múl7ple tipo identificador1, identificador2; Tipos básicos !   Booleano: verdadero, falso !   Carácter:
a, A, z, Z, 1, 9, #, ?, … !   Número entero:
-­‐1, 33 !   Número real:
3.14, 5E-­‐10
!   Con asignación tipo identificador = valor;
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Booleano !   Para representar valores lógicos: cierto o falso !   Se u7liza para representar el resultado de las operaciones lógicas y de comparación !   Tipo boolean
Carácter !   Valores numéricos que se usan para representar caracteres (letras, números, símbolos) usando la tabla ACII o La7n 1 !   Tipo char
!   Se expresan entre comillas simples: ‘a’, ‘4’, ‘#’ !   Valores true o false
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Número entero !   Para contar o numerar Número real !   Números reales, posi7vos o nega7vos y con o sin decimales !   Diferentes bases de representación Decimal (10):
0, -­‐1, 65184 Octal (8):
00, -­‐01, 0177240 Hexadecimal (16):
0x0, -­‐0x1, 0xFEA0 !   Tres niveles de precisión: short, int y long
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) !   Coma flotante !   Representación interna dis7nta a la de los enteros !   Notación decimal o cienqfica !   Dos niveles de precisión: float y double
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) 3 18/01/12 Tipos básicos Tipo Tamaño en bits Valores true o false
boolean
Declaraciones de ejemplo int i;
char
16 De \u0000 a \uFFFF float i, j, k;
byte
8 De -­‐128 a 127 short
16 Número entero de -­‐32768 a 32767 char a = ‘x’, b = ‘4’, c = a;
int
32 Número entero de -­‐231 a 231 -­‐ 1 long
64 Número entero de -­‐263 a 263 -­‐ 1 float
32 Número real en coma flotante double
64 Numero real en coma flotante Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) boolean b = false;
double k = -0.25;
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) ¿Son a y b iguales? !   Caso 1 int a = 1;
char b = ‘1’; !   Caso 2 int a = 1;
long b = 1; !   Caso 3 int a = 1;
double b = 1.0; Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Conversión automá7ca !   La hace automá7camente el compilador !   Es segura !   Solo entre 7pos compa7bles !   Se realiza por promoción: de un 7po “menor” a uno “mayor” int a = 2;
Conversión de 7pos !   ¿Qué pasa cuando combinamos 7pos diferentes? !   Tipos compa7bles: Aquellos que almacenan información similar !   Tipos incompa7bles: Aquellos que almacenan información diferente !   2 mecanismos !   Conversión automá7ca !   Conversión explícita Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Conversión explícita !   Cas7ng: mecanismo para explicitar el cambio de 7po de una expresión o variable !   Le indicamos al compilador que asumimos la responsabilidad !   Sintaxis: (tipo nuevo) expresión float valor = a; Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) 4 18/01/12 Conversión de 7pos long a = 1;
int b = a;
Entrada/salida básica !   Forma correcta: long a = 1;
int b = (int)a; Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Entrada/salida estándar !   Mecanismos sencillos para leer y escribir información por la terminal Salida de datos básica !   Para mostrar una línea de texto por la terminal se usa: System.out.print(expr)
System.out.println(expr)
!   La clase String: !   Representa una cadena de caracteres !   Ser verá en profundidad más adelante !   Se pueden definir y usar variables (objetos) de clase String: !   Donde expr es una expresión de Java que queramos mostrar. !   Ejemplo: int a = 0;
String cadena = “Hola”;
System.out.println(a);
String cadena = “mi cadena de texto”;
System.out.print(cadena);
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Secuencias de escape !   Sirven para tener mayor control sobre el formato de la salida de los datos !   Secuencias especiales de caracteres en las cadenas de texto \n
Salto de línea \t
Tabulador \r
retorno de carro \\
Barra inver7da \”
Comillas dobles Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Entrada de datos básica !   Clase de biblioteca java.u7l.Scanner import java.util.Scanner;
public class EntradaInteractiva {
public static void main(String [] args) {
/∗ stdIn es un identificador, puede llamarse
como queramos. Recordad llamarlo igual
después ∗/
Scanner stdIn = new Scanner(System.in);
System.out.print(”Escribe un número:”);
int num = stdIn.nextInt();
System.out.println(num);
}
}
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) 5 18/01/12 Entrada de datos básica !   Leyendo cadenas de caracteres con java.u7l.Scanner import java.util.Scanner;
public class EntradaInteractiva {
Operadores y expresiones public static void main(String [] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print(”Dime tu nombre:”);
String nombre = stdIn.next();
System.out.println(nombre);
}
}
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Operadores !   Permiten realizar operaciones sobre las variables y su valor !   Operador de asignación = variable = valor
!   Asigna el valor a una variable !   Se puede usar en la declaración de una variable Operadores aritmé7cos !   Se usan para calcular operaciones matemá7cas entre datos y variables del mismo 7po !   El resultado se puede almacenar en otra variable del mismo 7po !   Expresión: Uso conjunto de uno o mas valores, variables y/o operadores que se evalúa para obtener su valor final int a = 0, b;
b = 10;
a = b;
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) suma
- resta
* multiplicación
/ división
%
módulo (resto)
++
auto-incremento
(pre ó post)
-- auto-decremento
(pre ó post)
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Auto-­‐incremento y auto-­‐
decremento Expresiones aritmé7cas !
+ int a = 5 - (2 * 2);
!   Son operadores unarios (se aplican sobre una única variable) !   a++; /* a = a + 1 */
!   a=3; b=a++;
/* a=4
b=3 */
!   a=3; b=++a;
/* a=4
b=4 */
!   a=3; b=a--;
/* a=2
b=3 */
!   f=4/3;
/* == 1 Div. entera */
!   b=4%3;
/* == 1 == (4 – (4/3)*3) */ !   f=4.0/3;
/* == 1.333 Div. real */
!   f=(float)4/3;
/* == 1.333 Div. real */
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) !   Suman o restan 1 al valor de la variable !   Los ‘pre’ se aplican antes de evaluar la expresión y los ‘post’ después int a = 0;
a++;
// Ahora a vale 1
a--;
// Ahora a vale 0
int b = (2*a++) // b vale 0 y a 1
int c = 2*(++a) // c vale 4 y a 2
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) 6 18/01/12 Precedencia de operador Asignación combinada !   Tiene preferencia *, /, % frente a +, -­‐ !   Se combina un operador aritmé7co binario con una asignación !   Se evalúa de izquierda a derecha variable op= expresión; // op es +,-,*,/,%
!   Se pueden usar paréntesis !   Equivale a num = 2 * 10 + 5;
num = 2 * (10 + 5);
variable = variable op expresión; // num = 25
// num = 30 !   Ejemplos int a = 10;
a += 10;
a /= 5;
a %= 6;
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Operadores de comparación !   Se usan para comparar datos y variables de 7pos compa7bles ==
igual !=
dis7nto !   Producen expresiones de 7po boolean
>
Mayor <
menor >=
mayor o igual <=
menor o igual Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Operadores lógicos !   Se usan para operar con datos y variables de 7po boolean &&
y (and) ||
o (or) !   Producen expresiones de 7po boolean
!
no (not) !   Se pueden combinar con otras expresiones de 7po boolean Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Operadores lógicos A && B // a = a + 10
// a = a / 5
// a = a % 6 Expresiones lógicas A || B A B Resultado A B Resultado true true true true true true true false false true false true false true false false true true false false false false false false int a = 10;
int b = 20, c = 30;
boolean d, e, f, g;
d = (a > b);
e = (b <= c);
f = d || e;
// d es false
// e es true
// f es true
g = (a != b) && ((c < b) || (c == a))
Java es un lenguaje “perezoso”: Si conociendo el primer término ya se sabe el resultado, no se evalúa el segundo Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) 7 18/01/12 Operador condicional !   A ? B : C !   Si (A) entonces vale B, si no vale C int a = 10;
int b = 20, c;
char d;
c = a > b ? 5 : 6;
d = c < a ? ‘X’ : ‘Y’;
Sintaxis básica, variables y 7pos -­‐ Jesús Montes Sánchez (jmontes@fi.upm.es) 8 
Descargar