6 sentencias if else switch

Upload: luis

Post on 06-Jul-2018

246 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 6 Sentencias if Else Switch

    1/26

    7mo. LaboratorioCátedra: Programación I

    Ing. Javier Sanchez M.

  • 8/18/2019 6 Sentencias if Else Switch

    2/26

    Estructuras de Seleccion: Sentencias if y switch

    Estructuras de Control

     Las estructuras de control controlan el flujo de ejecucion de unprograma

     Una sentencia compuesta es un conjunto de sentencias encerradas

    entre llaves ({ y } ) que se utiliza para especificar un flujo secuencial.

    { sentencia 1; sentencia ; sentencia !; . . . "entencia n;

    }

  • 8/18/2019 6 Sentencias if Else Switch

    3/26

    La "entencia if #

    $n %&&' la estructura de control de seleccion principal es una sentenciaif. La sentencia if tiene dos alternativas o formatos posiles#

    f ($*presion) +ccion+ccion se ejecuta si la e*presion logica es verdadera

    $*presion logica que determina "i la accion se ,a de ejecutar

    %uando se alcanza la sentencia if dentro de un programa' se evalua lae*presion entre parentesis que viene a continuacion de if. "i e*presion esverdadera' se ejecuta +ccion' en caso contrario no se ejecuta +ccion

    Expresion

    Accion

  • 8/18/2019 6 Sentencias if Else Switch

    4/26

    Ejemplo #1

    void main(){

    nt n' d;cout -- ntroduzca dos enteros/;cin 00 n 00 d;f (nd 22 3) cout -- n -- es divisile por/ -- d --

    endl;}

    $jecucion

    ntroduzca dos enteros# !4 5

    !4 es divisile por 5

    $ste programa lee dos numeros enteros y compruea cual es el valor delresto de la division n entre d (nd). "i el resto es cero' n es divisile pord. ($n nuestro caso !4 es divisile por 5' ya que !4 # 5 2 6 y el resto es3.)

  • 8/18/2019 6 Sentencias if Else Switch

    5/26

    Ejemplo #2:

    7include-iostream.,0

    void main(){

    float numero;cout -- ntroduzca un numero positivo o negativo#/;

    cin 00 numero;if (numero 0 3)

    cout -- numero -- es mayor que cero/ -- endl;}

    Ejecucion

    ntroduzca un numero positivo o negativo# 13.1813.18 es mayor que cero

  • 8/18/2019 6 Sentencias if Else Switch

    6/26

    Sentencia if de dos alternativas: if-else

    Un segundo formato de la sentencia if es la sentencia if9else#

    if ($*presion) +ccion1 else +ccion

    $*presion logica:ue determinaLa accion aejecutar

    +ccion se$jecuta si la

    $*presion logica$s verdadera

    +ccion que seealiza si la e*presionLogica es falsa

  • 8/18/2019 6 Sentencias if Else Switch

    7/26

    Ejemplo #3:

    if (salario 02 133333)salario

  • 8/18/2019 6 Sentencias if Else Switch

    8/26

    Ejemplo #:

    void main(){

    nt n' d;cout -- ntroduzca dos enteros/;cin 00 n 00 d;f (nd 22 3) cout -- n -- es divisile por/ -- d -- endl;

    elsecout -- n -- no es divisile por/ -- d -- endl;

    }

    !! Ejecucion:

    ntroduzca dos enteros !4 8!4 no es divisile por 8

    %omentario# !4 no es divisile por 8' ya que !4 dividido entre 8 produceun resto de 1 (nd 2 2 3' es falsa' y se ejecuta la clausula else).

  • 8/18/2019 6 Sentencias if Else Switch

    9/26

    Sentencia if-else anidadas

    %on las sentencias if9else anidadas podemos implementar decisiones queimpliquen diferentes alternativas.

    Una sentencia if es anidada cuando la sentencia de la rama verdadera ola rama falsa es a su vez una sentencia if.

    "inta*is#

    if (condicion1)sentencia1

    else if (condicion)sentencia

    .

    .

    .else if (condicion=)

    sentencia=else

    sentencia e

  • 8/18/2019 6 Sentencias if Else Switch

    10/26

    Ejemplo #":

    if (* 0 3)num

  • 8/18/2019 6 Sentencias if Else Switch

    11/26

    Sanria en las sentencias if anidadas:

    $l formato multiifurcacion se compone de una serie de sentencias ifanidadas' que se pueden escriir en cada linea una sentencia if. Lasinta*is multiifurcacion anidada es#

    $ormato 1:

    if (e*presion

  • 8/18/2019 6 Sentencias if Else Switch

    12/26

    $ormato 2:

    if (e*presion

  • 8/18/2019 6 Sentencias if Else Switch

    13/26

    Ejempo !7:

    7include-iostream.,0

    void main(){

    cout -- ntroduzca un numero positivo o negativo# /;cin 00 numero;

    if (numero 0 3)

    { cout -- numero -- es mayor que cero/ -- endl;cout -- pruee de nuevo' introduzca un numero negativo/ -- endl;

    }else if (numero - 3){

    cout -- numero -- es menor que cero/ -- endl;

    cout -- pruee de nuevo' introduzca un numero negativo/ -- endl;}else{

    cout -- numero -- es igual a cero/ -- endl;cout -- >or que no introduce un numero negativo?/ -- endl;

    }

  • 8/18/2019 6 Sentencias if Else Switch

    14/26

    Comparacion de "entencia" if anidada" # "ec$encia "e "entecia" if:

    Los programadores tienen dos alternativas: (1) usar una secuencia de sentencias if; (2) una

    unica sentencia if anidada. Por ejemplo la sentencia if del ejemplo !." se puede reescri#ircomo la siguiente secuencia de sentencias if.

    f (* 0 3)num

  • 8/18/2019 6 Sentencias if Else Switch

    15/26

    Ejemplo ):

    if (a 0 3)if ( 0 3) &&a;else

    if (c 0 3)

    f (a - 8) &&else

    if ( - 8) &&c;else 99a

    elseif (c - 8) 99;else 99c;

    else

    a 2 3;

  • 8/18/2019 6 Sentencias if Else Switch

    16/26

    Ejemplo 1*:

    if (a 0 3)if ( 0 3) &&a;else if (c 0 3)

    f (a - 8) &&else if ( - 8) &&c;else 99a

    $lse if (c - 8) 99;

    else 99c;else

    a 2 3;

  • 8/18/2019 6 Sentencias if Else Switch

    17/26

    Ejemplo #1*: (%alcular el mayor de tres numeros enteros.)

    void main(){

    int a' ' c' mayor;cout --/introduzca tres enteros#/;

    cin 00 a 00 00 c;if (a 0 )

    if (a 0 c) mayor 2 a;else mayor 2 c;

    elseif ( 0 c) mayor 2 ;else mayor 2 c;

    cout --/$l mayor es/ -- mayor -- endl;

  • 8/18/2019 6 Sentencias if Else Switch

    18/26

    La sentencia s$itc% es una sentencia &'' ue se utilia para seleccionar una de

    entre multiples alternativas. La sentencia s$tic% es especialmente util cuando la

    seleccion se #ase en el valor de una varia#le simple o de una expresion simpledenominada expresion de control o selector el valor de esta expresion puede ser

    de tipo int o c%ar pero no de tipo dou#le *intaxis:

    *$itc% (selector)

    +

    case etiueta1: sentencias1;#rea,;

    case etiueta2: sentencias2;

    #rea,;

    .

    case etiueta-: sentencias-;

    #rea,;default: sentenciasd; opcional

    La e*presion de control o selector se evalua y se compara con cada una de las etiquetas decase. La e*presion selector deer ser un tipo ordinal (por ejemplo' int' c,ar' ool' pero nofloat o string). %ada etiqueta es un valor unico' constante y cada etiqueta dee tener un valordiferente de los otros

    Sentencia de contro "%itch:

  • 8/18/2019 6 Sentencias if Else Switch

    19/26

    s$itc% (opcion)

    + case /:

    cout 00 &ero3 00 endl;

    #rea,;

    case 1:

    cout 00 4no3 00 endl;

    #rea,;

    case 2:

    cout 00 5os3 00 endl;

    #rea,;

    default:

    cout 00 6uera de rango3 00 endl;

     7

    Ejempo !&&:

  • 8/18/2019 6 Sentencias if Else Switch

    20/26

    s$itc% (opcion)

    + case /:

    case 1:

    case 2:

    cout 00 8enor de 93 00 endl;

    #rea,;

    case 9:

    cout 00 gual a 93;

    #rea,;

    default:

    cout 00 8aor ue 93;

     7

    Ejempo !&':

  • 8/18/2019 6 Sentencias if Else Switch

    21/26

    &omparacion de sentencias if

  • 8/18/2019 6 Sentencias if Else Switch

    22/26

    So$cion con "%itch

    *$itc% (car) +

    case >a> : case >A>:

    case >e> : case >E>:

    case >i> : case >>:case >o> : case >@>:

    case >u> : case >4>:

    cout 00 car 00 no es una vocal3 00 endl;

    rea,;default

    cout 00 car 00 no es una vocal3 00 endl;

    7

    Ejempo !&*: Contin$acion

  • 8/18/2019 6 Sentencias if Else Switch

    23/26

    Binclude0iostream.%C

    int main()

    +

    c%ar nota;

    cout 00 introduca la calificacion (AA>: cout 00 Excelente examen superadon3;#rea,;

    case >>: cout 00 -ota#le suficiencian3;

    #rea,;

    case >&>: cout 00 Apro#adon3;

    #rea,;

    case >5>:

    case >6>: cout 00 *upendidon3;rea,;

    5efault:

    &out 00 -o es posi#le esta nota3;

    7

    cout 00 6inal del programa3 00 endl;

    return /;7

    Ejempo !&+: Programa de ilustracion de la sentencia s

  • 8/18/2019 6 Sentencias if Else Switch

    24/26

    nt tipoFve%iculo;

    cout 00 introduca tipo de ve%iculo:3;

    cin CC tipoFve%iculo peaje;

    s$itc% (tipoFve%iculo)

    +

    case 1:

    cout 00 Gurismo3;

    peaje = H//;#rea,;

    case 2:

    cout 00 auto#us3;

    peaje = 9///;

    #rea,;

    case 9:cout 00 8otocicleta3;

    peaje = 9//;

    #rea,;

    5efault:

    cout 00 Ie%iculo no autoriado3;

    7

    Ejempo !&,

  • 8/18/2019 6 Sentencias if Else Switch

    25/26

    Esta permitido tener varias expresiones case en una

    alternativa dada dentro de la sentencia s$itc%. Por ejemplo

    se puede escri#ir:

    s$itc%(c) +

    case >/> : case >1> : case >2> : case >9> : case >!> :

    case >H> : case >"> : case >J> : case >K> : case >> :numFdigitos'';

    rea,;

    &ase >> : case >t> : case >n> :

    numF#lancos''rea,;

    5efault;

    numFdistintos'';

    7

    Ejempo !&-: &aso particular case

  • 8/18/2019 6 Sentencias if Else Switch

    26/26

    nvestigar

    so de sentencias s$itc% en menus

    xpresiones condicionales: El operador M:valuacion en cortocircuito de expresiones logicas.

    uesta a punto de programas.

    rrores frecuentes de programacion

    esumen de capitulo ! ejercicios.

    ota: 5ic%os temas de#en ser anexados al presente document