Programación.Net Lenguaje C#

Documentos relacionados
Instrucciones de control

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

Programación Orientada a Objetos

Informática Ingeniería en Electrónica y Automática Industrial

Java. Introducción a la Programación Orientada a Objetos

FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

GUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13

Laboratorio de Arquitectura de Redes. Sentencias de control en lenguaje C

Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas.

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Capítulo 4. Control de flujo. Continuar

Tipos de Datos de python (2ª parte):

Tema 06: Estructuras y sentencias de control en C

Construcciones del Lenguaje Java

Lección 3 Sentencias de control

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Programación: Estructuras de Control

Tema: Tipos de datos y conversiones

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Introducción a Java. Introducción a Java. Programación I

Tema 2. El lenguaje JAVA

Java para programadores

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Programación. Test Autoevaluación Tema 4

1.9. SENTENCIAS DE CONTROL DE PROGRAMA

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

ESTRUCTURAS DE CONTROL

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

1. Detalle de los Comandos:

Es ambigua, ya que la división y la multiplicación tienen el mismo grado de precedencia, qué parte de la expresión se realiza primero?

Expresiones y sentencias

3.3 Conceptos Básicos del Lenguaje Java

5. Sentencias selectivas o condicionales

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

El nuevo C# Alejandro Gassmann Equipo Danysoft

4. Operadores Operador asignación

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

TEMA 4. ESTRUCTURAS DE CONTROL

Expresiones y sentencias

Informática PRÀCTICA 3 Curs Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida.

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -.andresmtzgwordpress.com

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

Tema 3. Estructuras de control

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

NOTA: Un algoritmo o programa de computadoras está estructurado si en su diseño se hace uso de los siguientes tres métodos o estructuras de control:

Lenguaje de Programación MSc. Daniel Alejandro Yucra Sotomayor

Operadores aritméticos

Objetivos de la sesión. Expresiones aritméticas. Operadores Aritméticos 12/30/11

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Programación Orientada Objetos. Estructuras de control if, If else, switch

Introducción al lenguaje C

SEMINARIO DE DQL CON PHP Y MYSQL

Estatutos de Control C# Estatutos de Decisión (Selección)

Programación I Teoría I.

Java posee dos grandes categorías de tipos para las variables:

Tema: Estructuras de Selección en C#.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

UNIVERSIDAD AUTONOMA DE QUERETARO Facultad de Informática

PHP: Lenguaje de programación

Tutorial de C# Tipos de Datos. Por: Óscar López, M.Sc.

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

TEMA 3. OPERADORES Y EXPRESIONES.

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

fundamentos de programación (unidad 4) programación estructurada en Java

Elementos de un programa en C

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv

Ficha de Aprendizaje N 13

Lección 2 Introducción al lenguaje C

Operadores aritméticos. / División operando enteros o reales si operandos son entero resultado es entero. Resto de caso resultado real

Elementos léxicos del lenguaje de programación Java

Estructura de datos y Programación

A continuación se mostrará un breve resumen del lenguaje, extraído del libro El Lenguaje de Programación C#.

Tema 2. El lenguaje de programación Java (Parte 1)

Estructuras de Control 3

Fundamentos de Programación

Conversión entre Tipos

Características de JavaScript

LENGUAJE. Tema 2 Elementos de un programa

Bloque II. Elementos del lenguaje de programación Java

Transcripción:

En esta guía: Programación.Net Lenguaje C# Conversiones de Tipos... 1 Conversión boxing y unboxing... 1 Boxing... 1 Unboxing... 1 Conversiones Implícitas... 2 Conversiones Explícitas... 2 Conversiones con Parsing... 3 Instrucciones... 4 Instrucciones de selección... 5 if-else... 5 switch... 6 Instrucciones de iteración... 7 do... 7 while... 8 for... 9 foreach... 10

Conversiones de Tipos La conversión se refiere a la capacidad de cambiar un objeto de un tipo a otro. Se trata de una característica relativa al tiempo de ejecución, en lugar de al tiempo de compilación. Las conversiones pueden ser implícitas o explícitas; las conversiones implícitas tienen lugar cuando es posible una conversión automática, mientras que las conversiones explícitas se invocan cuando existe la posibilidad de un error ó pérdida de datos. Conversión boxing y unboxing La unificación del sistema de tipos define también técnicas denominadas boxing y unboxing. Aquí es donde los tipos primarios y los tipos de referencia pueden utilizarse indiferentemente. Las conversiones boxing y unboxing permiten tratar los tipos de valor como objetos. La aplicación de la conversión boxing a un tipo de valor, empaqueta el tipo en una instancia del tipo de referencia Object. Esto permite almacenar el tipo de valor en la pila del recolector de elementos no utilizados (garbage collector). La conversión unboxing extrae el tipo de valor del objeto. Con relación a las asignaciones simples, las conversiones boxing y unboxing son procesos que consumen muchos recursos. Cuando se aplica la conversión boxing a un tipo de valor, se debe asignar y construir un objeto completamente nuevo. En menor grado, la conversión de tipos requerida para aplicar la conversión unboxing también es costosa. Boxing Es el proceso usado para convertir un tipo primitivo en un tipo de referencia. Para implementar esto, lo único que hace falta es asignar el tipo primitivo a un objeto. No es necesario realizar nada especial para que tenga lugar la conversión, ya que tiene lugar implícitamente durante la asignación. Ej: Unboxing Es el proceso contrario al boxing, ya conocemos el tipo subyacente de un objeto que ha sido convertido (boxed), por lo tanto, lo único que debemos hacer es devolver al objeto a su tipo primitivo original, asignándolo de nuevo a un campo de su tipo primario original. Para que funcione el unboxing, es necesario recuperar explícitamente el valor, devolviéndolo a su tipo original. Cualquier intento de convertirlo en otro tipo daría lugar a una excepción del tipo System.InvalidCastException. Página 1

Conversiones Implícitas Las conversiones implícitas tienen lugar de forma automática, sin necesidad de ninguna sintaxis ni ensayo adicional. Por ejemplo, la conversión de int a long sucede como una operación de asignación normal, según se aprecia en este ejemplo: Esta conversión tiene lugar sin ningún tipo de problema, debido a dos principios muy simples. En primer lugar, long es un valor de 64 bits e int es un valor de32 bits, por lo tanto el valor de tipo int cabe sin ningún problema en un tipo long. En segundo lugar, no se generará ningún tipo de error, ya que la semántica de un valor int no cambia cuando se coloca en una variable long; sigue representando lo mismo un número entero. Cuando estos principios no se cumplen, es decir, no conducen a un resultado positivo, se debe utilizar la conversión explícita. La siguiente tabla muestra las conversiones implícitas para los tipos simples en C#: Tipo sbyte byte short ushort int uint long ulong float double decimal Conversiones permitidas short, int, long, float, double, decimal short, ushort, int, uint, long, ulong, float, double, decimal int, long, float, double, decimal int, uint, long, ulong, float, double, decimal long, float, double, decimal long, ulong, float, double, decimal float, double, decimal float, double, decimal double ninguna ninguna Conversiones Explícitas Este tipo de conversión es requerida cuando existe la posibilidad de una pérdida de datos o la aparición de un error. Para implementar este tipo de conversión, se ha de insertar un operador cast delante de la expresión de origen. Un operador cast no es más que el nombre del tipo que va a ser convertido, encerrado entre paréntesis. Por ejemplo si viajamos en dirección contraria al del ejemplo visto en la conversión implícita, el paso de long a int requerirá de una conversión explícita, ya que existe la posibilidad de que un valor de tipo long no pueda ser representado en un int, para el caso del ejemplo en cuestión tenemos: Página 2

Conversiones con Parsing El parseo de información, se trata de otro mecanismo para poder llevar información desde un string a un tipo de dato. Esta acción es facilitada por el método Parse() que implementan los tipos numéricos y de fecha, principalmente lo que se hace traducir la cadena enviada hacia el tipo de dato al que se le solicita el parseo, obteniendo un valor de tipo de dato solicitante. En el siguiente ejemplo se realiza un parseo desde una cadena a un tipo int y long; A diferencia del proceso de casting de la conversión explícita, si el valor a convertir excede la capacidad del tipo de dato se producirá una excepción del tipo OverflowException, dando aviso del desbordamiento. Otra consideración de excepción se da cuando el valor literal no puede ser traducido al tipo destino como en el siguiente ejemplo: Para evitar que se pueda producir una excepción al momento de realizar el parsing, C# provee de un método para evaluar el parsing antes de realizarlo mediante el método TryParse(), este realizará una evaluación y retornará un valor del verdad indicando el éxito del proceso y adicionalmente el valor convertido en una variable de salida (out). Página 3

Instrucciones Una instrucción es una unidad de creación de procedimientos a partir de la cual se construyen todos los programas de C#. Una instrucción puede declarar una variable o constante local, llamar a un método, crear un objeto o asignar un valor a una variable, propiedad o campo. Una instrucción de control puede crear un bucle, por ejemplo un bucle for, u optar por bifurcarse a un nuevo bloque de código, por ejemplo una instrucción if o switch. Generalmente, las instrucciones finalizan con un punto y coma (;). Una serie de instrucciones que aparecen entre llaves forma un bloque de código. El cuerpo de un método es un ejemplo de bloque de código. A menudo, los bloques de código siguen una instrucción de control. Las variables o constantes declaradas dentro de un bloque de código sólo están disponibles para las instrucciones dentro del mismo bloque de código. Por ejemplo, el siguiente código muestra un bloque de método y un bloque de código después de una instrucción de control: Las instrucciones de C# a menudo contienen expresiones. Una expresión de C# es un fragmento de código que contiene un valor literal, un nombre simple o un operador y sus operandos. Las expresiones más comunes, cuando se evalúan, producen un valor literal, una variable o una propiedad de objeto. Cada vez que se identifica una variable, propiedad de objeto o acceso a indexador de objeto desde una expresión, el valor de dicho elemento se utiliza como valor de la expresión. En C#, una expresión puede colocarse en cualquier lugar donde se requiera un valor u objeto, siempre y cuando la expresión evalúe finalmente el tipo requerido. En el siguiente ejemplo la expresión se evaluará como un resultado de valor lógico que se asignará a una variable de tipo bool: Página 4

Instrucciones de selección Una instrucción de selección hace que el control del programa se transfiera a un determinado punto del flujo de ejecución dependiendo de si cierta condición es true o no (false/null). Son también conocidas como instrucciones de bifurcación, ya que determinan un camino definido a seguir en la ejecución del programa, acorde a los valores de las expresiones que se evalúan. if-else La instrucción if selecciona una instrucción para ejecución en base al valor de una expresión lógica. En el ejemplo siguiente se evalúa una expresión de comparación matemática cuyo resultado será true, por lo tanto el resultado de la variable string será: Es Positivo. Si la expresión en el paréntesis se evalúa como true, a continuación se ejecuta la instrucción de asignación a la variable de nombre resultado con el valor "Es Positivo". Después de ejecutar la instrucción if, el control se transfiere a la siguiente instrucción, else no se ejecuta en este ejemplo. Si se desea ejecutar más de una instrucción, es posible ejecutar varias instrucciones en forma condicional al incluirlas en bloques mediante {}, al igual que en el ejemplo anterior. Si solo se trata de una instrucción es posible omitir el bloque {}. Las instrucciones que se van a ejecutar como resultado de comprobar la condición pueden ser de cualquier tipo, incluida otra instrucción if anidada dentro de la instrucción if original. En las instrucciones if anidadas, la cláusula else pertenece a la última instrucción if que no tiene una cláusula else correspondiente. Por ejemplo: En este ejemplo, se mostrará Sentencia 2 si la condición (y > 20) se evalúa como false. No obstante, si desea asociar Sentencia 2 a la condición (x >10), utilice llaves: Página 5

En este caso, se mostrará Sentencia 2 si la condición (x > 10) se evalúa como false. También es posible extender la instrucción if de modo que puedan controlarse varias condiciones, mediante la construcción else if siguiente: switch La instrucción switch es una instrucción de control que controla múltiples selecciones y enumeraciones pasando el control a una de las instrucciones case de su cuerpo, como se muestra en el ejemplo siguiente: El control se transfiere a la instrucción case que coincide con el valor del modificador. La instrucción switch puede incluir cualquier número de instancias case, sin embargo dos instrucciones case nunca pueden tener Página 6

el mismo valor. La ejecución del cuerpo de la instrucción empieza en la instrucción seleccionada y continúa hasta que la instrucción break transfiere el control fuera del cuerpo case. Es necesario introducir una instrucción de salto como break después de cada bloque case, incluido el último bloque, se trate de una instrucción case o de una instrucción default. Con una excepción, (a diferencia de la instrucción switch de C++), C# no admite el paso implícito de una etiqueta case a otra. Esta excepción se produce si una instrucción case no tiene ningún código. Si ninguna expresión case coincide con el valor de la instrucción switch, entonces el control se transfiere a las instrucciones que siguen la etiqueta default opcional. Si no existe ninguna etiqueta default, el control se transfiere fuera de la instrucción switch. Instrucciones de iteración Las instrucciones de iteración permiten crear bucles. En un bucle, las instrucciones internas se ejecutan un determinado número de veces, según el criterio de terminación del bucle. Estas instrucciones se ejecutan en orden, salvo cuando se encuentra una instrucción de salto. do La instrucción do ejecuta una instrucción o un bloque de instrucciones entre {} repetidamente hasta que una expresión especificada se evalúe como false. En el ejemplo siguiente las instrucciones de bucle do-while se ejecutan con la condición de que la variable sea menor que 5. El Resultado del bloque anterior será una impresión secuencial: 0, 1, 2 5. A diferencia de la instrucción while, un bucle do-while se ejecuta una vez antes de que se evalúe la expresión condicional. En cualquier punto dentro del bloque do-while, puede salir del bucle utilizando la instrucción break. Puede pasar directamente a la instrucción de evaluación de expresión while utilizando la instrucción continue; si la expresión se evalúa como true, la ejecución continúa en la primera instrucción del bucle. Si la expresión se evalúa como false, la ejecución continúa en la primera instrucción detrás del bucle do-while. Página 7

while La instrucción while ejecuta una instrucción o un bloque de instrucciones repetidamente hasta que la expresión especificada se evalúa como false. Como la comprobación de la expresión while tiene lugar antes de la ejecución del bucle, las instrucciones internas de un bucle while pueden no llegar a ejecutarse. Esto es diferente del bucle do que se ejecuta al menos en una oportunidad. Un bucle while se puede terminar cuando una instrucción break, return o throw y se transfiere el control fuera del bucle. Para pasar el control a la siguiente iteración sin salir del bucle, use la instrucción continue. La comprobación de la expresión depende de un valor booleano, por lo tanto es factible utilizar una variable de tipo bool, como variable de control. En el siguiente ejemplo, se realiza el ciclo sólo en una oportunidad Página 8

for El bucle for ejecuta una instrucción o un bloque de instrucciones repetidamente hasta que una determinada expresión se evalúa como false. El bucle for es útil para recorrer en iteración matrices y para procesar secuencialmente. En el ejemplo siguiente el valor de int i se escribe en la consola y el valor de i se va incrementando en 1 en el bucle. La instrucción for ejecuta la instrucción o instrucciones internas repetidamente del siguiente modo: Primero, se evalúa el valor inicial de la variable i. A continuación, mientras el valor de i sea menor o igual que 5, la condición se evalúa como true, se ejecuta la instrucción Console.WriteLine y se vuelve a evaluar i. Cuando i es mayor que 5, la condición se convierte en false y el control se transfiere fuera del bucle. Puesto que la comprobación de la expresión condicional tiene lugar antes de la ejecución del bucle, las instrucciones internas de un bucle for pueden no llegar a ejecutarse. La variable de control que es evaluada en un bucle for puede ser intervenida en el bloque de código, pudiendo quebrar el ciclo de manera predeterminada como lo demuestra el siguiente ejemplo: Página 9

foreach La instrucción foreach repite un grupo de instrucciones incluidas en el bucle para cada elemento de una matriz o de un objeto Array o Collection. La instrucción foreach se utiliza para recorrer en iteración una colección de elementos y obtener la información deseada, pero no se recomienda para cambiar el contenido de la colección. Las instrucciones del bucle siguen ejecutándose para cada elemento de la matriz o la colección. Cuando ya se han recorrido todos los elementos de la colección, el control se transfiere a la siguiente instrucción fuera del bloque foreach. En cualquier punto dentro del bloque foreach, puede salir del bucle utilizando la palabra clave break o pasando directamente la iteración siguiente del bucle mediante la palabra clave continue. En este ejemplo, foreach se utiliza para mostrar el contenido de una matriz de enteros. Esencialmente lo que se debe especificar en el bucle foreach es una variable de paso del tipo que colecciona la matriz o colección, este elemento tomará la identidad del ítem que se recorre de manera secuencial en la matriz o acorde al iterador de la colección. El siguiente ejemplo se utiliza para mostrar el nombre de los objetos de la clase Persona dentro de una colección: Una de las ventajas que proporciona en bloque foreach, es que no se debe trabajar con una variable de paso interna cuando es requerida una conversión explícita para un tipo definido por el usuario al recorrer colecciones. Si bien for nos permitiría realizar este recorrido, es necesario definir una variable de paso para realizar el casting, acción que es realiza de manera automática en foreach. Página 10