Ir para o conteúdo
progster

[Resolvido] Iniciante Java

Mensagens Recomendadas

progster

Boa noite.

Sou iniciante em Java, e ou é da hora ou da inexperiência, mas estou a ter problemas no seguinte programa:

package vendas;
public class Vendas {
public static void main(String[] args)
{
 double vt,vc,op;

 System.out.println("Introduza a opção pretendida!");
 System.out.println("1-Público!");
 System.out.println("2-Floristas!");
 op=Le.umDouble();	
 System.out.println("A opção escolhida é:"+op);
 if (op=1)
 {				
	 System.out.print("Introduza o valor da compra!");
	 vc=Le.umDouble();
	 vt=vc-(vc*0.06);
	 System.out.print("O valor a pagar é:"+vt);
 }
 else	
 {
	 if (vc<50)
	 {		
	 System.out.print("Introduza o valor da compra!");
	 vc=Le.umDouble();
	 vt=(vc-(vc*0.02));
	 System.out.print("O valor a pagar é:"+vt);
	 }
	 else
	 {
	 if ((vc>50) && (vc<250))
	 {			
		 System.out.print("Introduza o valor da compra!");
		 vc=Le.umDouble();
		 vt=vc-(vc*0.05);
		 System.out.print("O valor a pagar é:"+vt);
		 }	
	 else
	 {			
		 System.out.print("Introduza o valor da compra!");
		 vc=Le.umDouble();
		 if (vc>250)		
		 {
		 vt=(vc-(vc*0.10));
		 System.out.print("O valor a pagar é:"+vt);
		 }
 }			
}
 }
}
}

O erro que me está a dar é na linha If(op=1), e a msg de erro é: "incompatible types required boolean found double The assigned value is never used"

Algo me está a escapar, deve ser um pormenor insignificante que não estou a conseguir encontrar.

Agradeço desde já qualquer ajuda que me possam dar.

Cumprimentos.


Não resolvo dúvidas por PM.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Bom dia,

package vendas;
public class Vendas {
public static void main(String[] args)
{
	 double vt,vc;
	 int op; 		
	 System.out.println("Introduza a opção pretendida!");
	 System.out.println("1-Público!");
	 System.out.println("2-Floristas!");
	 op=Le.umInteiro();	
	 System.out.println("A opção escolhida é:"+op);
	 if (op=1) //compara o valor da variavel op ao valor inteiro 1 "se op for um double, digitando 1 no teclado, ele assume como 1,00 que é diferente de 1"
	 {							
			 System.out.print("Introduza o valor da compra!");
			 vc=Le.umDouble();
			 vt=vc-(vc*0.06);
			 System.out.print("O valor a pagar é:"+vt);
	 }
	 else
	 {
			 if (vc<50)
			 {			
			 System.out.print("Introduza o valor da compra!");
			 vc=Le.umDouble();
			 vt=(vc-(vc*0.02));
			 System.out.print("O valor a pagar é:"+vt);
			 }
			 else
			 {
			 if ((vc>50) && (vc<250))
			 {					
					 System.out.print("Introduza o valor da compra!");
					 vc=Le.umDouble();
					 vt=vc-(vc*0.05);
					 System.out.print("O valor a pagar é:"+vt);
					 }	
			 else
			 {					
					 System.out.print("Introduza o valor da compra!");
					 vc=Le.umDouble();
					 if (vc>250)		
					 {
					 vt=(vc-(vc*0.10));
					 System.out.print("O valor a pagar é:"+vt);
					 }
	 }					
}
	 }
}
}


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
progster

Obrigado, caro amigos era isso mesmo.

Bem me parecia que era algo insignificante que não estava a conseguir descobrir, agora e depois de alguns testes só me falta descobrir porque é que assume sempre que o valor da compra é inferior a 50. Em todo o caso, com mais algum estudo e trabalho penso que lá chegarei à solução.

Cumprimentos.


Não resolvo dúvidas por PM.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa tarde,

Pela mesma razão que 1 e 1,00 são valores diferentes, 50 e 50.00 são valores diferentes.

package vendas;
public class Vendas {
public static void main(String[] args)
{
			 double vt,vc;
			 vc=0.00; //inicia a variavel vc a 0.00
			 int op;			
			 System.out.println("Introduza a opção pretendida!");
			 System.out.println("1-Público!");
			 System.out.println("2-Floristas!");
			 op=Le.umInteiro();
			 System.out.println("A opção escolhida é:"+op);
			 if (op=1) //compara o valor da variavel op ao valor inteiro 1 "se op for um double, digitando 1 no teclado, ele assume como 1,00 que é diferente de 1"
			 {													
							 System.out.print("Introduza o valor da compra!");
							 vc=Le.umDouble();
							 vt=vc-(vc*0.06);
							 System.out.print("O valor a pagar é:"+vt);
			 }
			 else
			 {
							 if (vc<50.00)
							 {					
							 System.out.print("Introduza o valor da compra!");
							 vc=Le.umDouble();
							 vt=(vc-(vc*0.02));
							 System.out.print("O valor a pagar é:"+vt);
							 }
							 else
							 {
							 if ((vc>50.00) && (vc<250.00))
							 {									
											 System.out.print("Introduza o valor da compra!");
											 vc=Le.umDouble();
											 vt=vc-(vc*0.05);
											 System.out.print("O valor a pagar é:"+vt);
											 }	
							 else
							 {									
											 System.out.print("Introduza o valor da compra!");
											 vc=Le.umDouble();
											 if (vc>250.00)		
											 {
											 vt=(vc-(vc*0.10));
											 System.out.print("O valor a pagar é:"+vt);
											 }
			 }									
}
			 }
}
}

Cordiais cumprimentos,

Apocsantos

  • Voto 1

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
progster

Boa tarde,

Pela mesma razão que 1 e 1,00 são valores diferentes, 50 e 50.00 são valores diferentes.

package vendas;
public class Vendas {
public static void main(String[] args)
{
			 double vt,vc;
			 vc=0.00; //inicia a variavel vc a 0.00
			 int op;			
			 System.out.println("Introduza a opção pretendida!");
			 System.out.println("1-Público!");
			 System.out.println("2-Floristas!");
			 op=Le.umInteiro();
			 System.out.println("A opção escolhida é:"+op);
			 if (op=1) //compara o valor da variavel op ao valor inteiro 1 "se op for um double, digitando 1 no teclado, ele assume como 1,00 que é diferente de 1"
			 {													
							 System.out.print("Introduza o valor da compra!");
							 vc=Le.umDouble();
							 vt=vc-(vc*0.06);
							 System.out.print("O valor a pagar é:"+vt);
			 }
			 else
			 {
							 if (vc<50.00)
							 {					
							 System.out.print("Introduza o valor da compra!");
							 vc=Le.umDouble();
							 vt=(vc-(vc*0.02));
							 System.out.print("O valor a pagar é:"+vt);
							 }
							 else
							 {
							 if ((vc>50.00) && (vc<250.00))
							 {									
											 System.out.print("Introduza o valor da compra!");
											 vc=Le.umDouble();
											 vt=vc-(vc*0.05);
											 System.out.print("O valor a pagar é:"+vt);
											 }	
							 else
							 {									
											 System.out.print("Introduza o valor da compra!");
											 vc=Le.umDouble();
											 if (vc>250.00)		
											 {
											 vt=(vc-(vc*0.10));
											 System.out.print("O valor a pagar é:"+vt);
											 }
			 }									
}
			 }
}
}

Cordiais cumprimentos,

Apocsantos

Sem dúvida alguma que ainda tenho muito que aprender. :)

Obrigado mais uma vez pela ajuda prestada.

Editado por progster

Não resolvo dúvidas por PM.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
progster

Apesar da questão que me levou a abrir este tópico já estar resolvida, surgiu outra situação que não estou a conseguir resolver:

package vendas;
public class Vendas {
   public static void main(String[] args)
   {
    double op,vc,vt;

    System.out.println("Introduza a opção pretendida!");
    System.out.println("	  1-Público!  ");
    System.out.println("	  2-Floristas!");
    op=Le.umDouble();	   
    System.out.println("A opção escolhida é:"+op);

    if (op==1)  
    {				 
	 System.out.print("Introduza o valor da compra!");
	 vc=Le.umDouble();
	 vt=vc-(vc*0.06);
	 System.out.print("O valor a pagar é:"+vt);
    }
    if (op==2)   
    {
	 System.out.print("Introduza o valor da compra!");
	 vc=Le.umDouble();
	 if (vc<50)
	 {		  
	  vt=(vc-(vc*0.02));
	  System.out.print("O valor a pagar é:"+vt);		  
	 }
	 else
	 {		
	 if ((vc>50) && (vc<250))
	 {					  
	 System.out.print("Introduza o valor da compra!");
	 vc=Le.umDouble();
	 vt=vc-(vc*0.05);
	 System.out.print("O valor a pagar é:"+vt); 
		 }	  
	    else
	    {			
		 System.out.print("Introduza o valor da compra!");
		 vc=Le.umDouble();
		 if (vc>250)		
		 {
		 vt=(vc-(vc*0.10));
		 System.out.print("O valor a pagar é:"+vt); 
		 }
  }			
   }
    }
   }
}

Para valores superiores a 50, e para valores superiores a 250, o output dá-me o valor correcto, mas pedem duas vezes tanto numa como na outra, para introduzir o valor da compra. Porque será?


Não resolvo dúvidas por PM.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

É uma questão de estrutura:

package vendas;
public class Vendas {
   public static void main(String[] args)
   {
       double op,vc,vt;

       System.out.println("Introduza a opção pretendida!");
       System.out.println("          1-Público!  ");
       System.out.println("          2-Floristas!");
       op=Le.umDouble();
       System.out.println("A opção escolhida é:"+op);

       if (op==1)
       {
           System.out.print("Introduza o valor da compra!");
           vc=Le.umDouble();
           vt=vc-(vc*0.06);
           System.out.print("O valor a pagar é:"+vt);
       }
       if (op==2)
       {
           System.out.print("Introduza o valor da compra!"); // Pedido 1
           vc=Le.umDouble();
           if (vc<50)
           {
               vt=(vc-(vc*0.02));
               System.out.print("O valor a pagar é:"+vt);
           }
           else
           {
               if ((vc>50) && (vc<250))
               {
                   System.out.print("Introduza o valor da compra!"); // Pedido 2
                   vc=Le.umDouble();
                   vt=vc-(vc*0.05);
                   System.out.print("O valor a pagar é:"+vt);
               }
               else
               {
                   System.out.print("Introduza o valor da compra!"); // Pedido 2
                   vc=Le.umDouble();
                   if (vc>250)
                   {
                       vt=(vc-(vc*0.10));
                       System.out.print("O valor a pagar é:"+vt);
                   }
               }
           }
       }
   }
}


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
progster

Era isso mesmo, não havia necessidade de estar a repetir na opção 2, o pedido para introduzir o valor da compra, uma vez que já o tinha antes da comparação de valores.

Bem, para o caso de mais alguém ter a mesma dúvida aqui fica o código final:

package vendas;
public class Vendas {
   public static void main(String[] args)
   {
    double op,vc,vt;
    System.out.println("Introduza a opção pretendida!");
    System.out.println("		  1-Público!  ");
    System.out.println("		  2-Floristas!");
    op=Le.umDouble();
    System.out.println("A opção escolhida é:"+op);
    if (op==1)
    {
	    System.out.print("Introduza o valor da compra!");
	    vc=Le.umDouble();
	    vt=vc-(vc*0.06);
	    System.out.print("O valor a pagar é:"+vt);
    }
    if (op==2)
    {
	    System.out.print("Introduza o valor da compra!");
	    vc=Le.umDouble();
	    if (vc<50)
	    {
		    vt=(vc-(vc*0.02));
		    System.out.print("O valor a pagar é:"+vt);
	    }
	    else
	    {
		    if ((vc>50) && (vc<250))
		    {				   
			    vt=vc-(vc*0.05);
			    System.out.print("O valor a pagar é:"+vt);
		    }
		    else
		    {				  
			    if (vc>250)
			    {
				    vt=(vc-(vc*0.10));
				    System.out.print("O valor a pagar é:"+vt);
			    }
		    }
	    }
    }
   }
}

Obrigado pela ajuda.


Não resolvo dúvidas por PM.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.