For a = 1 to 10
    if a = dumm then next a 'this statement should avoid running the subsequent codes if the if statement is true (similar to continue in c++
    end if
    'statements that need to run when the if statement is not true

next a 

¿Por qué hace este código no funciona?? Lanza error de compilación: a continuación sin que para

  • deshacerse de lado a, se necesita una acción en la instrucción if
  • if a = dumm then a = a + 1
  • if a = dumm then goto... (esto requiere la adición de una etiqueta que se puede utilizar con el goto declaración.
  • si no es junto a el bucle no se ejecuta 10 veces
  • que se ejecuta el resto del código. Yo no quiero eso.
  • ¿por qué no? Cuando se incremento con la Next declaración, el código se ejecutará en el siguiente iteración de todos modos. En cualquier caso, hay varias maneras obvias para ello, véase la respuesta a continuación.
  • También, no quiero usar un GOTO en mi código. Las alternativas?
  • ejecutando el resto del código en la siguiente iteración está bien, pero NO quiero correr ese código si la condición se cumple.
  • ¿Por qué no? La posterior iteración es el mismo si usted es el incremento variable de bucle a. No hace ninguna diferencia en el que pasar el código se ejecuta (a menos que haya algo muy complicado sobre el ejecutable de declaraciones, en cuyo caso, usted probablemente debería agregar más detalles a tu Pregunta para aclarar).
  • Muchas gracias. Yo no piense en eso. Que resuelve el problema.

InformationsquelleAutor pnkjmndhl | 2017-01-31

1 Comentario

  1. 6

    ¿Por qué hace este código no funciona?? Se produce un error de compilación: a continuación sin que para

    Porque usted tiene un next sin un correspondiente For. For/Next y For Each/Next debe ser pareja, no se puede abrir un For bucle sin Next y usted no puede usar Next sin `Para.

    Simplemente:

    if a = dumm then a = a + 1

    Esto incrementa su a valor dentro del bucle. Estoy claro de por qué usted piensa que esto no es aplicable, porque si usted incremento a y luego ejecutar el código, o saltar a la siguiente a (que es funcionalmente equivalente a incrementar a través de +1), el resultado debe ser el mismo

    O, usted puede agregar una etiqueta y un GoTo declaración:

    For a = 1 to 10
        if a = dumm then 
            GoTo MyLabel 
        end if
        'statements that need to run when the if statement is not true
    
    MyLabel:
    next a 

    O, y mi preferencia, solo uso adecuado de expresiones booleanas:

    For a = 1 to 10
        if not a = dumm Then
            'statements that need to run when the if statement is not true
        end if
    Next

    Si usted no desea continuar con el bucle en todos los, a continuación, agregar un Exit declaración,

    For a = 1 to 10
        if a = dumm Then Exit For
        'statements that need to run when the if statement is not true
    
    Next

    o utilizar un Do/While bucle con la debida escapar de condiciones:

    a = 1
    Do 
        'statements go here...    
        a = a + 1
    Loop While a <= 10 and Not a = dumm 

Dejar respuesta

Please enter your comment!
Please enter your name here