• Domingo 22 de Diciembre de 2024, 02:11

Autor Tema:  que es else if exactamente  (Leído 3442 veces)

krosty4782

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
que es else if exactamente
« en: Martes 3 de Marzo de 2009, 12:25 »
0
Hola.
Bueno estaba programando un tres en raya en C++.
El problema es que quiero que dentro de una funcion que contiene muchos if, que si entra en uno la funcion termine.
Entonces me dieron otra idea, que use "else if", lo hize pero creo que no esta andando bien...
Cual es la definicion esxacta del "else if", que hace exactamente ?
Mi codigo esta asi:

Código: C
  1. if (tablero[8] && tablero[2] == 'X')
  2.                 {
  3.                                  tablero[5] = 'O';
  4.                 }
  5.  
  6.  
  7.  
  8. else if (tablero[4] != 'O' || 'X')
  9.                 {
  10.                                  tablero[4] = 'O';
  11.                                                                
  12. }
  13. else if (tablero[2] != 'O' || 'X')
  14.                 {
  15.                                  tablero[2] = 'O';
  16.                                                              
  17. }
  18. else if (tablero[0] != 'O' || 'X')
  19.                 {
  20.                                  tablero[0] = 'O';
  21.                                                              
  22. }
  23. else if (tablero[6] != 'O' || 'X')
  24.                 {
  25.                                  tablero[6] = 'O';
  26.                                                              
  27. }
  28. else if (tablero[8] != 'O' || 'X')
  29.                 {
  30.                                  tablero[8] = 'O';
  31.                                                              
  32. }
  33.  

Saludos

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: que es else if exactamente
« Respuesta #1 en: Martes 3 de Marzo de 2009, 13:16 »
0
http://www.zator.es/Cpp/E4_10_2.htm#else%20if

PD. En tu if entrara siempre que tablero[8] no sea 0 y tablero[2] sea X, tal vez no sea eso lo que queres.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

krosty4782

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: que es else if exactamente
« Respuesta #2 en: Martes 3 de Marzo de 2009, 16:23 »
0
Lo que yo quiero exactamente es que al entrar en un if, la funcion termine, pero nose como finalizar la funcion desde un if, osea no se puede utilizar un break, asi que nose :S
No logro hacer que al entrar a un if, es decir, si se cumple la condicion de uno, que la funcion termine, que no siga entrando a los demas, eso es exactamente lo que quiero hacer, seria como poner un break alfinal de cada if, eso seria exactamente, como podria lograrlo ?
Saludos gracias

betopin

  • Miembro activo
  • **
  • Mensajes: 93
  • Nacionalidad: co
    • Ver Perfil
    • http://www.programasenc.blogspot.com
Re: que es else if exactamente
« Respuesta #3 en: Martes 3 de Marzo de 2009, 16:38 »
0
Hay muchas formas...por ejemplo dentro del if puede realizar un return

Ej

Código: C
  1. if (tablero[8] && tablero[2] == 'X')
  2.                 {
  3.                                  tablero[5] = 'O';
  4.                                  return 0;
  5.                 }
  6.  

o puedes usar otras herramientas como el comando exit....

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: que es else if exactamente
« Respuesta #4 en: Martes 3 de Marzo de 2009, 18:05 »
0
Eso hace else if, si la primera condicion (el if) se cumple entonces no es evalua la segunda (y asi sucesivamente, si se cumple el primer else if no se evalua el segundo).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

krosty4782

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: que es else if exactamente
« Respuesta #5 en: Martes 3 de Marzo de 2009, 19:23 »
0
Pero entonces el 3 if si se cumpliria, supongamos:
Primer if = pone cruz en 5, el else if no lo cumple, pero el proximo else if si es posible de cumplir, lo haria o no ? entonces ya no esta haciendo un solo movimiento que es lo que quiero.
Digamos que al entrar en algun if, el primero que cumpla la condicion NO, evalue ningun otro en el codigo, que directamente termien la funcion.
Sobre lo del return, solo va a retornar 0, nada mas... la funcion va a continuar, ademas esta declarada como void. Voy a averiguar sobre exit.
Les dejo el code, como esta:

Código: C++
  1. void juegaC() //Movimientos maquina
  2. {
  3.  if (tablero[0] && tablero[1] == 'O')
  4.                  {
  5.                                   tablero[2] = 'O';
  6.                                  
  7.                  }
  8.                                    
  9.               else if (tablero[0] && tablero[2] == 'O')
  10.                  {
  11.                                   tablero[1] = 'O';
  12.                                  
  13.                                                    }
  14.                                                                                    
  15.                  else if (tablero[0] && tablero[4] == 'O')
  16.                  {
  17.                                   tablero[8] = 'O';
  18.                                                                                                    
  19.                  }      
  20.                  else if (tablero[3] && tablero[4] == 'O')
  21.                  {
  22.                                   tablero[5] = 'O';
  23.                                                                    
  24.                  }      
  25.                  else if (tablero[6] && tablero[7] == 'O')
  26.                  {
  27.                                   tablero[8] = 'O';
  28.                                                                    
  29.                  }      
  30.                  else if (tablero[0] && tablero[4] == 'O')
  31.                  {
  32.                                   tablero[8] = 'O';
  33.                                                                    
  34.                  }      
  35.                  else if (tablero[2] && tablero[4] == 'O')
  36.                  {
  37.                                   tablero[6] = 'O';
  38.                  }      
  39.                  else if (tablero[1] && tablero[4] == 'O')
  40.                  {
  41.                                   tablero[7] = 'O';
  42.                                                                    
  43.                  }      
  44.                  else if (tablero[0] && tablero[3] == 'O')
  45.                  {
  46.                                   tablero[6] = 'O';
  47.                                                                    
  48.                  }      
  49.                  else if (tablero[2] && tablero[5] == 'O')
  50.                  {
  51.                                   tablero[8] = 'O';
  52.                                                                    
  53.                  }      
  54.                  else if (tablero[1] && tablero[0] == 'O')
  55.                  {
  56.                                   tablero[2] = 'O';
  57.                                                                    
  58.                  }      
  59.                  
  60.                  else if (tablero[4] && tablero[3] == 'O')
  61.                  {
  62.                                   tablero[5] = 'O';
  63.                                                                    
  64.                  }      
  65.                  else if (tablero[7] && tablero[6] == 'O')
  66.                  {
  67.                                   tablero[8] = 'O';
  68.                                                                    
  69.                  }      
  70.                  else if (tablero[4] && tablero[0] == 'O')
  71.                  {
  72.                                   tablero[8] = 'O';
  73.                                                                    
  74.                  }      
  75.                  else if (tablero[4] && tablero[2] == 'O')
  76.                  {
  77.                                   tablero[6] = 'O';
  78.                                                                    
  79.                  }      
  80.                  else if (tablero[4] && tablero[1] == 'O')
  81.                  {
  82.                                   tablero[7] = 'O';
  83.                                                                    
  84.                  }      
  85.                  else if (tablero[3] && tablero[0] == 'O')
  86.                  {
  87.                                   tablero[6] = 'O';
  88.                                                                    
  89.                  }      
  90.                  else if (tablero[5] && tablero[2] == 'O')
  91.                  {
  92.                                   tablero[8] = 'O';
  93.                                                                    
  94.                  }      
  95.                  else if (tablero[2] && tablero[0] == 'O')
  96.                  {
  97.                                   tablero[1] = 'O';
  98.                                                                    
  99.                  }      
  100.                  else if (tablero[5] && tablero[3] == 'O')
  101.                  {
  102.                                   tablero[4] = 'O';
  103.                                                                    
  104.                  }      
  105.                    else if (tablero[8] && tablero[6] == 'O')
  106.                  {
  107.                                   tablero[7] = 'O';
  108.                                                                    
  109.                  }      
  110.                  else if (tablero[8] && tablero[0] == 'O')
  111.                  {
  112.                                   tablero[4] = 'O';
  113.                                                                    
  114.                                   }      
  115.                  else if (tablero[6] && tablero[2] == 'O')
  116.                  {
  117.                                   tablero[4] = 'O';
  118.                                                                    
  119.                  }      
  120.                  else if (tablero[7] && tablero[1] == 'O')
  121.                  {
  122.                                   tablero[4] = 'O';
  123.                                                                    
  124.                                                
  125.                                   }
  126.                 else if (tablero[6] && tablero[0] == 'O')
  127.                  {
  128.                                   tablero[3] = 'O';
  129.                                                                    
  130.                                                
  131.                                   }
  132.                 else if (tablero[8] && tablero[2] == 'O')
  133.                  {
  134.                                   tablero[5] = 'O';
  135.                  }
  136.  
  137.  
  138.                 else if (tablero[0] && tablero[1] == 'X')
  139.                  {
  140.                                   tablero[2] = 'O';
  141.                  }
  142.                                    
  143.                  else if (tablero[0] && tablero[2] == 'X')
  144.                  {
  145.                                   tablero[1] = 'O';
  146.                  }
  147.                                                                                    
  148.                  else if (tablero[0] && tablero[4] == 'X')
  149.                  {
  150.                                   tablero[8] = 'O';
  151.                                                                  
  152.                  }      
  153.                  else if (tablero[3] && tablero[4] == 'X')
  154.                  {
  155.                                   tablero[5] = 'O';
  156.                                                                    
  157.                  }      
  158.                  else if (tablero[6] && tablero[7] == 'X')
  159.                  {
  160.                                   tablero[8] = 'O';
  161.                                                                    
  162.                  }      
  163.                  else if (tablero[0] && tablero[4] == 'X')
  164.                  {
  165.                                   tablero[8] = 'O';
  166.                                                                    
  167.                  }      
  168.                  else if (tablero[2] && tablero[4] == 'X')
  169.                  {
  170.                                   tablero[6] = 'O';
  171.                  }      
  172.                  else if (tablero[1] && tablero[4] == 'X')
  173.                  {
  174.                                   tablero[7] = 'O';
  175.                                                                    
  176.                  }      
  177.                  else if (tablero[0] && tablero[3] == 'X')
  178.                  {
  179.                                   tablero[6] = 'O';
  180.                                                                    
  181.                  }      
  182.                  else if (tablero[2] && tablero[5] == 'X')
  183.                  {
  184.                                   tablero[8] = 'O';
  185.                                                                    
  186.                  }      
  187.                  else if (tablero[1] && tablero[0] == 'X')
  188.                  {
  189.                                   tablero[2] = 'O';
  190.                                                                    
  191.                  }      
  192.                  
  193.                  else if (tablero[4] && tablero[3] == 'X')
  194.                  {
  195.                                   tablero[5] = 'O';
  196.                                                                    
  197.                  }      
  198.                  else if (tablero[7] && tablero[6] == 'X')
  199.                  {
  200.                                   tablero[8] = 'O';
  201.                                                                    
  202.                  }      
  203.                 else if (tablero[4] && tablero[0] == 'X')
  204.                  {
  205.                                   tablero[8] = 'O';
  206.                                                                    
  207.                  }      
  208.                  else if (tablero[4] && tablero[2] == 'X')
  209.                  {
  210.                                   tablero[6] = 'O';
  211.                                                                    
  212.                  }      
  213.                  else if (tablero[4] && tablero[1] == 'X')
  214.                  {
  215.                                   tablero[7] = 'O';
  216.                                                                    
  217.                  }      
  218.                  else if (tablero[3] && tablero[0] == 'X')
  219.                  {
  220.                                   tablero[6] = 'O';
  221.                                                                    
  222.                  }      
  223.                  else if (tablero[5] && tablero[2] == 'X')
  224.                  {
  225.                                   tablero[8] = 'O';
  226.                                                                    
  227.                  }      
  228.                  else if (tablero[2] && tablero[0] == 'X')
  229.                  {
  230.                                   tablero[1] = 'O';
  231.                                                                    
  232.                  }      
  233.                  else if (tablero[5] && tablero[3] == 'X')
  234.                  {
  235.                                   tablero[4] = 'O';
  236.                                                                    
  237.                  }      
  238.                    else if (tablero[8] && tablero[6] == 'X')
  239.                  {
  240.                                   tablero[7] = 'O';
  241.                                                                    
  242.                  }      
  243.                  else if (tablero[8] && tablero[0] == 'X')
  244.                  {
  245.                                   tablero[4] = 'O';
  246.                                                                    
  247.                                   }      
  248.                  else if (tablero[6] && tablero[2] == 'X')
  249.                  {
  250.                                   tablero[4] = 'O';
  251.                                                                    
  252.                  }      
  253.                 else if (tablero[7] && tablero[1] == 'X')
  254.                  {
  255.                                   tablero[4] = 'O';
  256.                                                                    
  257.                                                
  258.                                   }
  259.                 else if (tablero[6] && tablero[0] == 'X')
  260.                  {
  261.                                   tablero[3] = 'O';
  262.                                                                    
  263.                                                
  264.                                   }
  265.                 else if (tablero[8] && tablero[2] == 'X')
  266.                  {
  267.                                   tablero[5] = 'O';
  268.                  }
  269.  
  270.  
  271.  
  272. else if (tablero[4] != 'O' || 'X')
  273.                  {
  274.                                   tablero[4] = 'O';
  275.                                                                  
  276.  }
  277.   else if (tablero[2] != 'O' || 'X')
  278.                  {
  279.                                   tablero[2] = 'O';
  280.                                                                
  281.  }
  282.   else if (tablero[0] != 'O' || 'X')
  283.                  {
  284.                                   tablero[0] = 'O';
  285.                                                                
  286.  }
  287.   else if (tablero[6] != 'O' || 'X')
  288.                  {
  289.                                   tablero[6] = 'O';
  290.                                                                
  291.  }
  292.  else if (tablero[1] != 'O' || 'X')
  293.                  {
  294.                                   tablero[1] = 'O';
  295.                                                                
  296.  }
  297.  else if (tablero[3] != 'O' || 'X')
  298.                  {
  299.                                   tablero[3] = 'O';
  300.                                                                
  301.  }
  302.  else if (tablero[7] != 'O' || 'X')
  303.                  {
  304.                                   tablero[7] = 'O';
  305.                                                                
  306.  }
  307.  else if (tablero[8] != 'O' || 'X')
  308.                  {
  309.                                   tablero[8] = 'O';
  310.                                                                
  311.  }
  312.  

Por ejemplo, si incerto la cruz en "0", la maquina pone la O, en  "2", y yo nunca puse esa condicion :S hay algo que anda mal.

Gracias

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: que es else if exactamente
« Respuesta #6 en: Martes 3 de Marzo de 2009, 19:59 »
0
Cita de: "krosty4782"
Pero entonces el 3 if si se cumpliria, supongamos:

No, para algo es else if, si pusieras if si se cumpliria.

Si tenes dudas simplemente PROBALO (con trazas o depurando).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

krosty4782

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: que es else if exactamente
« Respuesta #7 en: Martes 3 de Marzo de 2009, 21:07 »
0
Lo depure recien, y lo que esta haciendo es entrar en este:

Código: C++
  1.  
  2.  else if (tablero[1] && tablero[0] == 'X')
  3.                  {
  4.                                   tablero[2] = 'O';
  5.                                                                    
  6.                  }      
  7.  

Pero no tengo idea porque esta entrando ahi, si supuestamente ahi lo unico que tendria 'X' seria el tablero[0].
A alguien se le ocurre porque pueda estar entrando :S ?
Ademas muchos if va paso a paso, pero otros como que salta, es decir viene if 1 if 2 if 3, y de repente salta solo a if 5, esto a que se debe ?
Saludos

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: que es else if exactamente
« Respuesta #8 en: Martes 3 de Marzo de 2009, 23:41 »
0
else if (tablero[1] && tablero[0] == 'X')

Te lo dije en mi primer mensaje, eso va a entrar siempre que haya una X en tablero[0] y tablero[1] sea diferente de 0, si queres que los dos sean X tenes que poner:

else if (tablero[1] == 'X' && tablero[0] == 'X')

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

krosty4782

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: que es else if exactamente
« Respuesta #9 en: Martes 3 de Marzo de 2009, 23:47 »
0
Cierto pero no lo habia entendido :P
Ahora ya va.
Te agradezco eternal idol porque siemrpe me ayudas =)
Gracias, ya lo tengo casi terminado, aver si lo termino del todo de una vez este proyecto y sigo aprendiendo que estoy hace unos dias parado con esto.
Gracias de nuevo
Saludos

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: que es else if exactamente
« Respuesta #10 en: Martes 3 de Marzo de 2009, 23:51 »
0
De nadas  B)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.