En este capítulo se revisan los distintos métodos con los que C # controla el flujo lógico de un programa.
Como se revisó en el capítulo anterior, los operadores relaciones binarios que se usan son:
==, !=, <, <=, > y >=
||, &&, ?
Opreador || en C#
Traducido se lo lee como “O”. Si la condición 1 es Verdadera O la condición 2 es Verdadera, luego ejecutar la rama del Verdadero.
Cuando vinculamos dos o más condiciones con el operador “Or", con que una de las dos condiciones sea Verdadera alcanza para que el resultado de la condición compuesta sea Verdadero.
operador && en C#
Traducido se lo lee como “Y”. Si la Condición 1 es verdadera Y la condición 2 es verdadera luego ejecutar la rama del verdadero.
Cuando vinculamos dos o más condiciones con el operador “&&”, las dos condiciones deben ser verdaderas para que el resultado de la condición compuesta de Verdadero y continúe por la rama del verdadero de la estructura condicional.
La utilización de operadores lógicos permiten en muchos casos plantear algoritmos más cortos y comprensibles.
Operador ? en C#
El operador ternario condicional ? es más eficiente que la sentencia if. El operador ? tiene el siguiente formato:expresion1 ? expresion 2 : expresion3;
Que es equivalente a la siguiente expresión:
if (expresion1) then expresion2 else expresion3;
Por ejemplo, para asignar el máximo de a y b a la variable z, usando ?, tendríamos:
z = (a>b) ? a : b;
que es lo mismo que:
if (a > b)
z = a;
else
z = b;
El uso del operador ? para reemplazar las sentencias if ... else no se restringe sólo a asignaciones, como en el ejemplo anterior. Se pueden ejecutar una o más llamadas de función usando el operador ? poniéndolas en las expresiones que forman los operandos.
La Instrucción Switch en C#
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:
int
caseSwitch = 1;
switch
(caseSwitch)
{
case 1:
Console.WriteLine("Case 1");
break;
case 2:
Console.WriteLine("Case 2");
break;
default:
Console.WriteLine("Default case");
break;
}
Ejercicios Resueltos de Estructura Condicional Compuesto en C#
Ejemplo 1Realizar un programa que dado tres valores por teclado, si todos son iguales se imprime la suma del primero con el segundo y a este resultado se lo multiplica por el tercero.
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace CondicionesCompuestas4
{
class Program
{
static void Main(string[]
args)
{
int
num1, num2, num3;
string
linea;
Console.Write("Ingrese primer
numero:");
linea = Console.ReadLine();
num1 = int.Parse(linea);
Console.Write("Ingrese
segundo numero:");
linea = Console.ReadLine();
num2 = int.Parse(linea);
Console.Write("Ingrese
tercer numero:");
linea
= Console.ReadLine();
num3 = int.Parse(linea);
if
(num1 == num2 && num1 == num3)
{
int suma = num1 + num2;
Console.Write("La suma del primero y segundo es:");
Console.WriteLine(suma);
int producto = suma * num3;
Console.Write("La suma del primero y segundo multiplicado por el tercero
es:");
Console.Write(producto);
}
Console.ReadKey();
}
}
}
Realizar un programa en el cual: dada una lista de tres valores numéricos distintos se calcule e informe su rango de variación (debe mostrar el mayor y el menor de ellos)
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
CondicionesCompuestas9
{
class Program
{
static void Main(string[]
args)
{
int
num1, num2, num3;
string
linea;
Console.Write("Ingrese primer
numero:");
linea = Console.ReadLine();
num1 = int.Parse(linea);
Console.Write("Ingrese
segundo numero:");
linea = Console.ReadLine();
num2 = int.Parse(linea);
Console.Write("Ingrese
tercer numero:");
linea = Console.ReadLine();
num3 = int.Parse(linea);
Console.Write("Rango
de valores es:");
if (num1>num2 && num1 > num3)
{
Console.Write(num1);
}
else
{
if (num2
> num3)
{
Console.Write(num2);
}
else
{
Console.Write(num3);
}
}
Console.ReadKey();
}
}
}
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
CondicionCompuesta1
{
class Program
{
static void Main(string[]
args)
{
int
num1, num2, num3;
string
linea;
Console.Write("Ingrese primer
numero:");
linea = Console.ReadLine();
num1 = int.Parse(linea);
Console.Write("Ingrese
segundo numero:");
linea = Console.ReadLine();
num2 = int.Parse(linea);
Console.Write("Ingrese
tercer numero:");
linea
= Console.ReadLine();
num3 = int.Parse(linea);
if
(num1 > num2 && num1 > num3)
{
Console.Write("El mauor es"+num1);
}
else
{
if (num2 > num3)
{
Console.Write("El mauor es" + num2);
}
else
{
Console.Write("El mauor es" + num3);
}
}
Console.ReadKey();
}
}
}
Realizar un programa que dado un operario se conoce su sueldo y los años de antigüedad. Se pide confeccionar un programa que lea los datos de entrada e informe:
- Si el sueldo es inferior a 500 y su antigüedad es igual o superior a 10 años, otorgarle un aumento del 20 %, mostrar el sueldo a pagar.
- Si el sueldo es inferior a 500 pero su antigüedad es menor a 10 años, otorgarle un aumento de 5 %.
- Si el sueldo es mayor o igual a 500 mostrar el sueldo en pantalla sin cambios.
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
CondicionesCompuestas8
{
class Program
{
static void Main(string[]
args)
{
float
sueldo;
int
antiguedad;
string
linea;
Console.Write("Ingrese sueldo
del empleado:");
linea = Console.ReadLine();
sueldo = float.Parse(linea);
Console.Write("Ingrese
su antiguedad en años:");
linea = Console.ReadLine();
antiguedad = int.Parse(linea);
if (sueldo < 500 && antiguedad > 10)
{
float aumento = sueldo * 0.20f;
float
sueldoTotal = sueldo + aumento;
Console.Write("Sueldo a pagar:");
Console.Write(sueldoTotal);
}
else
{
if (sueldo < 500)
{
float
aumento = sueldo * 0.05f;
float sueldoTotal = sueldo + aumento;
Console.Write("Sueldo a pagar:");
Console.Write(sueldoTotal);
}
else
{
Console.Write("Sueldo a pagar:");
Console.Write(sueldo);
}
}
Console.ReadKey();
}
}
}
hola pueden ayudarme con estos ejercicios
ResponderEliminarRealizar un algoritmo utilizando ciclos repetitivos que permita el ingreso de 10 valores y
posteriormente mostrar el de mayor valor y el de menor valor.
2) Realizar un algoritmo utilizando ciclos repetitivos que permita ingresar 20 valores y
posteriormente muestre la suma de los valores pares y la multiplicación de los valores
impares.
3) Realizar un algoritmo utilizando ciclos repetitivos que permita el ingreso de 10 nombres de
personas con sus edades y posteriormente mostrar el nombre de la persona con mayor
edad y el de menor edad.
soy nuevo quiero aprender
gracias