varias - php if echo




if-else if-else declaración y corchetes (3)

Entiendo que la forma habitual de escribir una declaración "if - else if" es la siguiente:

if (2==1) {
  print("1")
} else if (2==2) {
  print("2")
} else {
  print("3")
}

o

if (2==1) {print("1") 
} else if (2==2) {print("2")
} else print("3")

Al contrario, si escribo de esta manera.

if (2==1) {
  print("1")
} 
else if (2==2) {
  print("2")
}
else (print("3"))

o de esta manera:

if (2==1) print("1") 
else if (2==2) print("2")
else print("3")

La declaración no funciona. ¿Puede explicarme por qué y else else if debe estar en la misma línea? ¿Hay alguna otra forma de escribir la sentencia if-else if-else en R, especialmente sin corchetes?


Como ha mencionado hrbrmstr :

Cuando la inicial if está seguida por una expresión compuesta (indicada por el par {}), el analizador por defecto también va a esperar que la expresión seguida de else también sea compuesta. El único uso definido de else es con expresiones compuestas.

En la declaración if(cond) cons.expr else alt.expr , el else debe ponerse después y en la misma línea con el compuesto final `cons.expr '.

Entonces, si desea que su código se vea mejor sin corchetes, aplique de esta manera:

if (2==1) print("1") else 
   if (2==2) print("2") else 
      print("3")

En R, también tenemos la función ifelse () :

ifelse(1 < 0, "hello", "hi")

Salida:

# [1] "hi"

es una buena idea usar llaves cuando hay if anidados. Por ejemplo, en

if(n>0)
    if(a>b)
        z=a;
    else
        z=b;

el resto va con interior si no con si (n> 0). Si eso no es lo que quieres, debes usar llaves para forzar una asociación adecuada:

if(n>0){
    if(a>b)
        z=a;
}
else
    z=b;

Más detalles, un tutorial completo muy bueno: Declaraciones condicionales: if-else, else-if y switch en C! ¡Espero que esto te ayudará!







r