Pergunta simples mas curiosa! Como eu interrompo uma Função? [RESOLVIDO]

1. Pergunta simples mas curiosa! Como eu interrompo uma Função? [RESOLVIDO]

Nick Us
Nick-us

(usa Slackware)

Enviado em 15/07/2020 - 19:12h

Acho que nunca cai neste caso! Mas estou nele agora, e gostaria de saber se isso é possível! Se existe algum comando para isso!
Aprendi que devemos evitar o uso do comando GOTO, mas no momento é a única solução que eu possuo!

Explicando:
Meu programa executa uma função, onde a única coisa que possuo são PALAVRAS. Essa função não era um problema quando precisou verificar 2, 3, 4 palavras. Mas percebo que isso pode aumentar de tamanho!

Inicialmente por ela ser pequena, usei if, else deixando o último else para quando não encaixa-se em nenhum padrão!

Para mim, o ideal seria o uso de um switch, mas até o momento entendo que ele use somente Números para analisar qualquer coisa! Não sei se existe um switch em C++ que aceite como parâmetro de checagem uma String! Se existir por favor me informem que isso resolve o problema!

Em C, curiosamente fiz um switch comparar Strings, usando #define e etc... Um pedaço do código que usei que funciona, e claro posso usar em C++
#define SWITCH(X)	for(char *__switch_p__ = X, __switch_next__ = 1; __switch_p__; __switch_p__ = 0, __switch_next__ = 1){{
#define CASE(X) } if(!__switch_next__ || !(__switch_next__ = strcmp(__switch_p__, X))){

Como o C é poderoso né?

Mas para não fugir do meu objetivo! O que quero saber é se existe uma forma de eu interromper a execução de uma função! Assim como existe para loops!
Exemplo:
void My_Function () {
Faça isso
Faça aquilo
Não pise aqui

if(sentir fome)
ABORT Não execute as linhas abaixo, ISSO para a execução da função aqui! logo, as 2 linhas abaixo não seriam executadas

Não ligue isso
Atenda o telefone
}

OBS O Exemplo acima é para ter uma idéia do que eu quero! Lembrando que já faço isso usando if e elses, mas não é adequado usar if e elses pq estão ficando muitos deles e isso fica horrível e confuso. Nunca gostei de mais do que 3 if else, e tem pessoas que usam 20 as vezes! Eu gosto do Switch pq ele é bem claro visivelmente. Porém se eu puder INTERROMPER a função é ainda melhor! Pq eu poderia escrever os if necessários, adicioná-los sempre que precisar, dentro de uma organização clara! sabendo que o programa foi interrompido na linha certa!

Eu pensei no GOTO, pq ele interrompe a função!

Logo minhas opções são: GOTO rápido de colocar, Meu Switch que terei que preparar meu programa para ele funcionar, ou ficar incomodado usando if elses!
OU aprender ou descobrir que existe uma forma que eu não sei, que interrompe uma função! Seja em C ou C++.


  


2. MELHOR RESPOSTA

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 15/07/2020 - 21:12h

Olá!

Para isso, pode se usar a keyword return


void minhaFuncaoVoid(){
if (true)
return;

printf("foo\n");
}


Nesse exemplo, "foo" não será impresso.

Espero ter ajudado

[]'s

T+

--

Att,

Thiago Henrique Hüpner

http://pastebin.com/ZANutRt4

3. Re: Pergunta simples mas curiosa! Como eu interrompo uma Função? [RESOLVIDO]

Nick Us
Nick-us

(usa Slackware)

Enviado em 16/07/2020 - 03:59h

Thihup escreveu:

Olá!

Para isso, pode se usar a keyword return


void minhaFuncaoVoid(){
if (true)
return;

printf("foo\n");
}


Nesse exemplo, "foo" não será impresso.

Espero ter ajudado

[]'s

T+

--

Att,

Thiago Henrique Hüpner

http://pastebin.com/ZANutRt4


Rapaz não é que eu havia me esquecido do return? Nem passou pela minha cabeça! E acho que nunca passaria no momento! E da hora em que fiz a pergunta, e a hora que vi sua resposta, eu escrevi pelo menos uns 8 return e 2 deles eram de funções, e não lembrei!

Muito Obrigado!



4. Re: Pergunta simples mas curiosa! Como eu interrompo uma Função? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 16/07/2020 - 12:01h

Olha quem voltou!

Thihup escreveu


Está de volta, ou só de passagem?



... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


5. Re: Pergunta simples mas curiosa! Como eu interrompo uma Função? [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 09/09/2020 - 17:19h

paulo1205 escreveu:

Está de volta, ou só de passagem?


Perdão pela demora, eu não recebi mais e-mail do Viva o Linux e acabei me afastando da comunidade.
Pretendo retornar, mas hoje meu conhecimento está mais focado em Java, não sei como está a comunidade de Java por aqui...
Mudou um bocado ;)

Espero ter ajudado

[]'s

T+

--

Att,

Thiago Henrique Hüpner

http://pastebin.com/ZANutRt4


6. Re: Pergunta simples mas curiosa! Como eu interrompo uma Função? [RESOLVIDO]

João Cláudio de Alcântara
aguamole

(usa Lubuntu)

Enviado em 09/09/2020 - 17:24h

Pane cerebral.

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts