¿Cómo se sale de una función nula en C++?

2 minutos de lectura

avatar de usuario
jason taylor

¿Cómo puede salir prematuramente de una función sin devolver un valor si es una función nula? Tengo un método nulo que no necesita ejecutar su código si cierta condición es verdadera. Realmente no quiero tener que cambiar el método para devolver un valor.

  • A pesar de que esta es una pregunta realmente simple, voté porque tuve el mismo problema cuando escribí mi primer programa en C 🙂

    – rmeador

    6 de diciembre de 2008 a las 19:55

  • @itsbunnies: Como se mencionó en otra parte, no hay preguntas de programación demasiado simples para hacer en SO. Si tuviste problemas con eso, también los tuvo alguien más en el pasado y también los tendrá alguien más en el futuro.

    – Bill el lagarto

    6 de diciembre de 2008 a las 21:24

  • @BilltheLizard: ¿Qué pasa con el primer programa que alguna vez tenia ese problema? ¿Quién tuvo ese problema en su ¿pasado? 😉

    – Flan2006

    1 de junio de 2013 a las 0:01


  • acabo de tener esta pregunta yo mismo 🙂

    – moldavo

    16 mayo 2015 a las 10:03

  • Tenga en cuenta que siempre puede reescribir una función para que siempre regrese al final, que es un principio de programación estructurada (un punto de entrada, un punto de salida),

    – Malcolm McLean

    29 de enero de 2017 a las 8:09

avatar de usuario
mmx

¡Utilice una declaración de devolución!

return;

o

if (condition) return;

No necesita (y no puede) especificar ningún valor, si su método devuelve void.

  • Aún más al punto: NO debe especificar ningún valor de retorno si su método devuelve vacío.

    –Jonathan Leffler

    19 de abril de 2009 a las 20:16

  • Ajá, entonces cuando escribimos return; no devolver nada es devolver el mismo vacío ¿eh? vacío no significa nada de todos modos!! Hmm, ahora lo entiendo.

    – cuántica231

    18 de julio de 2012 a las 18:40

  • @ quantum321 Creo que el valor de retorno es técnicamente indefinido, no es nulo, pero es útil pensar en él como “vacío”.

    – SO apesta

    20 de marzo de 2013 a las 2:07

  • @Dr.PersonPersonII por ‘si su método devuelve “vacío”‘, me refería a la vista puramente sintáctica del tipo de retorno del método declarado como void. Técnicamente, el método no devuelve nada. que es diferente de devolver indefinido.

    – mmx

    20 de marzo de 2013 a las 2:18


  • En realidad puedes escribir return void() también 🙂

    – Carreras de ligereza en órbita

    23 de junio de 2015 a las 17:32

¿Quieres decir así?

void foo ( int i ) {
    if ( i < 0 ) return; // do nothing
    // do something
}

void foo() {
  /* do some stuff */
  if (!condition) {
    return;
  }
}

Puede usar la palabra clave de retorno como lo haría en cualquier otra función.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad