Ir ao conteúdo
  • Cadastre-se

else if


Plástico Bolha

Posts recomendados

Oi, estou com o seguinte problemea: O "if" que imprime "Numero invalido", Simplesmente não funciona, o programa fecha sem imprimir a mensagem. Tambem não sei como posso contar números de argumentos em um "if" que o exercício pede, fiz de um outro jeito, porque não sei como fazer um "if" contar argumentos.

Reescreva o programa VlrDef.cpp, definindo uma função chamada VolArea() da seguinte maneira: se VolArea()

receber três argumentos, ela calcula o volume de uma caixa retangular; se VolArea() receber dois argumentos,

ela calcula a área de um retângulo.

#include <iostream>
#include <stdio.h>
using namespace std;
int VolArea()
{
int compr;
int larg;
int profund;
int volume;
int a;
int area;
cout << "Digite 3 para calcular volume e 2 para calcular area ";
cin >> a;
if((a < 1) && (a > 4))
{
cout << "Numero invalido" << "\n";
system("PAUSE"); // Mesmo com system pause aqui o programa fecha direto
return(-1);
}
if(a == 3)
{
cout << "Digite o valor do Comprimento ";
cin >> compr;
cout << "Digite o valor da Largura ";
cin >> larg;
cout << "Digite o valor da Profundidade ";
cin >> profund;
volume = compr * larg * profund;
cout << "Volume = "
<< volume
<< "\n\n";
system("PAUSE");
return(0);
}
if(a == 2)
{
cout << "Digite o valor do Comprimento ";
cin >> compr;
cout << "Digite o valor da Largura ";
cin >> larg;
area = compr * larg;
cout << "Area " << area << "\n";
system("PAUSE");
}
}
int main()
{
VolArea();
return(0);
}

Link para o comentário
Compartilhar em outros sites

Oi, estou com o seguinte problemea: O "if" que imprime "Numero invalido", Simplesmente não funciona, o programa fecha sem imprimir a mensagem. também não sei como posso contar números de argumentos em um "if" que o exercício pede, fiz de um outro jeito, porque não sei como fazer um "if" contar argumentos.

#include <iostream>
#include <stdio.h>
using namespace std;
int VolArea()
{
int compr;
int larg;
int profund;
int volume;
int a;
int area;
cout << "Digite 3 para calcular volume e 2 para calcular area ";
cin >> a;
[COLOR=Red] if((a < 1) && (a > 4))[/COLOR]
{
cout << "Numero invalido" << "\n";
system("PAUSE"); // Mesmo com system pause aqui o programa fecha direto
return(-1);
}
if(a == 3)
{
cout << "Digite o valor do Comprimento ";
cin >> compr;
cout << "Digite o valor da Largura ";
cin >> larg;
cout << "Digite o valor da Profundidade ";
cin >> profund;
volume = compr * larg * profund;
cout << "Volume = "
<< volume
<< "\n\n";
system("PAUSE");
return(0);
}
if(a == 2)
{
cout << "Digite o valor do Comprimento ";
cin >> compr;
cout << "Digite o valor da Largura ";
cin >> larg;
area = compr * larg;
cout << "Area " << area << "\n";
system("PAUSE");
}
}
int main()
{
VolArea();
return(0);
}

porque você está usando 2 &&?

Link para o comentário
Compartilhar em outros sites

Oi AAMSR por causa disso:

Usados normalmente com expressões booleanas, isto é, expressões que retornam verdadeiro ou falso (1 ou 0), para fins de testes em declarações condicionais.

&& (E lógico)

Retorna verdadeiro se ambos os operandos são verdadeiros e falso nos demais casos. Exemplo: if( a>3 && b<4) (No meu caso "if( a<1 && a>3))".

Link para o comentário
Compartilhar em outros sites

Oi AAMSR por causa disso:

Eu sei disso, mas não é necessário os 2 apenas um.

Outra coisa

Nada que você lê em 'a' vai entrar nesse if porque não existe um número que seja menor que 1 e maior que 4.

Dá uma olhada.

você deve usar um while e ao invés de usar um &(e) use um ||(ou)

while (a <= 1 || a >=4)

{

cout << "Nímero inválido: \n";

cout << "Digite 3 para calcular volume e 2 para calcular area: ";

cin >> a;

}

Link para o comentário
Compartilhar em outros sites

Eu sei disso, mas não é necessário os 2 apenas um.

A utilização de dois é simplesmente para tornar o programa mais rápido...

ex:

if(expressão1 && expressão2)

{

...

}

else

{

...

}

Se expressão1 for false ele já vai direto pro else, pois não tem como um E dar verdadeiro se uma das entradas é falsa...

O mesmo funciona para ||...

Se a primeira expressão for verdadeira ele já executa o if sem verificar a segunda expressão...

Link para o comentário
Compartilhar em outros sites

Nossa valeu mesmo por me explicarem essas coisa ^_^.

Só mais um detalhe para aperfeiçoar. Como eu faria para tambem invalidar letras ? Porque se eu digito uma letra o programa da um bug. E eu não queria invalidar 1 letra, gostaria de invalidar qualquer letra.

Faz ao invéz de numeros serem caracteres tipo assim :

char valor;

você pega o valor..

cin>>valor;

no seu caso pode ser ou 2 ou 3

Ai você faz assim :

if (valor != '2' || valor != '3') /// se valor for diferente de '2' ou diferente de '3'

{

cout<<" Escolha invalida !";

}

Link para o comentário
Compartilhar em outros sites

OpA deu o mesmo bug, troquei por isso:

while ((a != '2') || (a != '3'))
{
cout << "Caractere invalido" << "\n";
cout << "Digite 3 para calcular volume e 2 para calcular area: ";
cin >> a;
}

Quando eu digito uma letra, ai da o bug @_@

Assim serviu, mas o programa fecha, ele não da outra chance de você digitar o número certo:

while ((a != '2') || (a != '3'))
{
cout << "Erro Caractere invalido" << "\n";
system("PAUSE");
return(-1);
}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!