¿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.
¿Cómo se sale de una función nula en C++?
jason taylor
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.
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