Escolar Documentos
Profissional Documentos
Cultura Documentos
Ouça o Hispter.tech
O podcast sobre programação, design, ux, gadgets, startups e outras modinhas!
A unica coisa q consegui resolve ate agora foi pra informar o salario, e se for menor q 465 dar mensagem de
erro:
Pra continuar to sem ideias, jah temtei de tudo e n consegui.. se puderem ajudar...
package ExerciciosJava;
import javax.swing.*;
public class Exercicio0706
{
public static void main(String[] args)
{
String Salario;
Salario = JOptionPane.showInputDialog(null,"Informe o salário");
int x = Integer.parseInt(Salario);
if (x<465)
{
Salario = "Salario Inválido: R$ "+Salario;
JOptionPane.showMessageDialog(null,Salario,"Erro",0);
System.exit(0);
}
if (x>=465)
{
Salario = "Salário : R$ "+Salario;
JOptionPane.showMessageDialog(null,Salario,"Mensagem",1);
}
}
}
Pra vc continuar
Nao deu certo isso que vc passou.. depois do if.. colocar esse else.. n vai!
olha da uma olhada ai nao sei se esta completo mais ve aiii da arrumada de acordo com quem vc aprendeu té
maiss!
import java.util.*;
public class Exercicio0706 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double salario,total = 0,recebe = 0;
Scanner dado = new Scanner(System.in);
System.out.println("Digite o salario do funcionario");
salario = dado.nextDouble();
if(salario > 465){
if(salario <= 975.67){
total = salario * 8/100;
recebe = salario - total;
System.out.println("a aliquota é de 8%");
}else if(salario == 965.68 && salario <= 1609.45){
total = salario * 9/100;
recebe = salario - total;
System.out.println("a aliquota é de 9%");
}else{
total = salario * 11/100;
recebe = salario - total;
System.out.println("a aliquota é de 11%");
}
}
if(salario <= 465){
Não tinha nada melhor para fazer, então fiz para você. Ao invés de apenas copiar e colar. Tente
entender cada coisa e onde você errou e o que você não pensou e fez. Você tem que pensar nos
"DADOS" que sua classe ou objeto precisam conhecer. E o que ela precisa fazer. E ai passar esses
dados como variáveis e o que fazer como método. Como é uma classe simples não usei um método
alem de main. Está ai:
//package ExerciciosJava;
import javax.swing.JOptionPane;
public class Exercicio0706 {
public static void main( String[] args ) {
// Como aqui é double então você pode inserir o salario com "." no InputDialog.
double salarioBru = 0.0; // armazena o salário Bruto
double salarioLiq = 0.0; // armazena o salário líquido
int taxa = 0; // armazena a áliquota
String informeSal = JOptionPane.showInputDialog(null,"Informe o salario" );
salarioBru = Double.parseDouble( informeSal );
if( salarioBru < 465.00 ) {
String mensagemInvalida = String.format( "Salario Invalido: R$%.2f", salari
JOptionPane.showMessageDialog(null, mensagemInvalida ,"Erro", 0 );
System.exit(0);
}
else if( salarioBru >= 465.00 && salarioBru <= 965.67 ) {
taxa = 8; // aliquota de 8%
double salBru = salarioBru * taxa;
salBru /= 100;
salarioLiq = salarioBru - salBru;
String mensagem = String.format( "<html>Salario Bruto: R$%,.2f<br>Aliquota
"Valor do INSS: R$%,.2f<br>Salario Liquido: R$%,.2f</html>", salarioBru
JOptionPane.showMessageDialog(null, mensagem, "Mensagem", 1);
}
else if( salarioBru >= 965.68 && salarioBru <= 1609.45 ) {
taxa = 9; // aliquota de 9%
Nossa mano.. valeeu mesmo!! Eu copiei e colei para ver como ia ficar, e ficou igualsinho como esperado!!
Agora vou ler e enteder ele TODOO!! para proximos exercicios eu consegui fazer sozinho!! ;D
valeeu!
Tambem nao sei pra q serve esse R$%.2f no "Salario Invalido: R$%.2f"
Um erro q deu, foi q qndo informo um salario maior que 3218 da soh essa mensagem "O teto para
recolhimento de INSS e: R$354,08" e mais nada
brunaum15:
Um erro q deu, foi q qndo informo um salario maior que 3218 da soh essa mensagem "O teto para
recolhimento de INSS e: R$354,08" e mais nada
Bom, vamos lá. Respondendo a última pergunta. Isso não é um erro. Isso fui eu que fiz nessas linhas:
Eu fiz isso, porque lá no problema da primeira mensagem do tópico você disse assim:
*O teto para o recolhimento de INSS é de R$354,07. Esse é o valor maximo que deve ser descontado do
salário.
Dez 2015
Ai eu fiz isso para não descontar nenhum valor que pasasse disso. Entendeu?
Quanto ao recurso que eu usei que você ainda não aprendeu é o seguinte. Geralmente para pular linha no
texto em java, quando está programando para exibir a saída no DOS você usa o "\n" ou então o "println" certo?
Nesse caso. Na janela do JOptionPane, o "\n" não estava funcionando, ai o que eu fiz? Usei HTML que não é
uma linguagem de programação mais de marcação de texto (Usada para fazer sites, você deve saber?).
Então, ai nessa linguagem começa assim:
<html>
<head>
Cabeçalho do site
</head>
<body>
Corpo do site
<body>
</html>
Isso é só uma palha, porque existem várias tags, mais você não precisa se preocupar com isso. No HTML,
para pular linha, usa-se a tag "
" (OBS: Não é necessária fechar a tag assim: "" ). Então nesse caso voce não precisa de nem apenas o e o
para pular as linhas. Entendeu? Por algum motivo QUE EU AINDA NÃO SEI, o "\n" não funcionou para pular
linha na exibição gráfica. Ocorria uma exceção chamada UnknownFormatConversionException que eu não
parei para ler.
Conhece FLAGS?
Flags são esses marcadores que usamos para exibir determinado caracter, string, double, etc com precisão.
Por exemplo, 163,09: Para exibir somente "163,0" eu faria assim: %.1f, esse ".1f" significa uma casa depois da
virgula. Ai voce tem que estudar e vêr os flags e suas formatações. NADA DE DIFICIL. Muito facil isso. Nem
se preocupe. Ai eu usei R$ como texto e esses flags eles vem indicado sempre depois do sinal de "%"
(Porcentagem). Isso indica que é um flag. Para exibir inteiro usa-se a letra d, para double e outros usa-se f e
assim tem mais alguns. Ai eu usei a , para ele separar certinho o número por exemplo: 1000.00 (mil reais) sem
virgula ficaria assim. Ai com a virgula fica assim: "1,000.00" Entendeu? E com o ".2" quer dizer duas casas
decimais depois da virgula.
Lá em:
Eu usei dois sinais de Porcento depois do "d" porque se eu usasse apenas um ele pensaria que seria uma flag
e ai daria erro. Entao com dois ele exibi o sinal de porcentagem que é a taxa. Entendeu? E o d é para exibir
um inteiro.
Quanto ao método format de String, vamos ver o que a java API diz sobre isso:
"Returns a formatted string using the specified format string and arguments."
Retorna uma string formata usando especificadores de formato string e argumentos. Entendeu? O que eu fiz lá
emcima.
No caso do "O teto para o recolhimento de INSS é de R$354,07" eu n queria q aparecesse essa mensagem, e
sim que n cobrasse mais que isso entendeu??
Mais acho que isso é facil de mudar, né??
Valeu...
É fácil mudar sim. Vai lá na linha e coloca o quer. Senão quer mais cobrar, ou fechar o programa, ou mandar
outra mensagem, sei lá você que tem que saber agora.
Entendi o que quer dizer. Fazer isso sem usar especificadores de formato tudo no mesmo JOptionPane?
Hmm...Não sei não.
String mensagem = "Salário Informado: R$ " + salarioFinal + "\nAlíquota do INSS: " + aliquota + "%";
JOptionPane.showMessageDialog(null, mensagem, "Mensagem", 1);
A da alíquota ficou certinho, mais ai a do salario ficou zuado e n da pra colocar %,.2f fica Salário: R$ 460,0
Sim é esse msn sim. Vai ficar assim mesmo, você não está usando flag.
ahh achei é o "% " tirei ele e funfo!, mais ai o final vai ficar zuado.. mais vo dexa assim mesmo..
brunaum15:
[code]
String mensagem = "Salário Informado: R$ " + salarioInformado + "\nAlíquota aplicável: " + aliquota + "% "
"\nValor do INSS: R$ " + INSS + "\nSalário Final: R$ " + salarioFinal;
[/code]
ahh achei é o "% " tirei ele e funfo!, mais ai o final vai ficar zuado.. mais vo dexa assim mesmo..
package ExerciciosJava;
import javax.swing.JOptionPane;
public class Exercicio0706 {
public static void main(String[] args) {
double salarioInformado = 0.0;
double salarioFinal = 0.0;
int aliquota = 0;
String informeSal = JOptionPane.showInputDialog(null, "Informe o salário");
salarioInformado = Double.parseDouble(informeSal);
if (salarioInformado < 465.00) {
String salarioInvalido = String.format("Salário Inválido: R$%.2f", salarioI
JOptionPane.showMessageDialog(null, salarioInvalido, "Erro", 0);
System.exit(0);
}
else if (salarioInformado >= 465.00 && salarioInformado <= 965.67) {
aliquota = 8;
double INSS = (salarioInformado * aliquota) / 100;
salarioFinal = salarioInformado - INSS;
String mensagem = String.format("Salário Informado: R$%.2f ", salarioInform
String mensagem1 = String.format("\nAlíquota aplicável: %d%% ", aliquota);
String mensagem2 = String.format("\nValor do INSS: R$%.2f ", INSS);
String mensagem3 = String.format("\nSalário Final: R$%.2f ", salarioFinal);
JOptionPane.showMessageDialog(null, mensagem+mensagem1+mensagem2+mensagem3,
System.exit(0);
}
else if (salarioInformado >= 965.68 && salarioInformado <= 1609.45) {
Valeeu..
Show. Qualquer coisa só perguntar, se eu puder ajudar, ajudo. Não esqueça de editar o tópico e colocar como
RESOLVIDO. Abraços
4 ANOS DEPOIS
Responder
Tópicos sugeridos
Bom dia, gostaria que alguem me ajudasse a resolver esse erro ? estou tentando fechar o meu
Java 1 127 Jun '17
analisador sintatico mas ele da o seguinte ERRO
Quer ler mais? Procure outros tópicos em Java ou ver tópicos mais recentes.
Alura Mobile
Business
Assuntos Gerais
Grupo Caelum
Caelum Alura Hipsters ponto Tech iMasters
MusicDot GUJ
Alura Língua