Boa noite pessoal, alguém poderia me ajudar a chegar em alguma solução desse problema? Porque meu programa não funciona ? estou tentando fazer dois comandos para ligar e desligar a lampada usando case, mas á erro
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Stringcomando="ligar";Scannersc=newScanner(System.in);Lampadalampada=newLampada();intestadoAtual;System.out.print("Use o comando 'ligar' para ( ligar a lampada ) ou 'desligar' para ( desligar a lampada).");comando=sc.nextInt();switch(estadoAtual){case1:comando=="ligar"if(lampada.isLigada())if(comando.equals("ligar"))System.out.println("lampada ligada.");lampada.setLigada(true);break;case2:comando=="desligar"if(comando.equals("desligar"))if(lampada.isDesligada())System.out.println("lampada desligada.");lampada.setLigada(false);break;default:System.out.println("lampada desligada.");lampada.setLigada(false);}}
o comando = sc.nextInt(); não deveria ser sc.nextLine(); ? já que é pra pegar uma string como “ligar” ou “desligar”?
e o switch não deveria ser switch(estadoAtual){
case “ligar”:
case “desligar”:
1
111aaa
à ?
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Stringcomando="ligar";Scannersc=newScanner(System.in);Lampadalampada=newLampada();intestadoAtual;System.out.print("Use o comando 'ligar' para ( ligar a lampada ) ou 'desligar' para ( desligar a lampada).");comando=sc.nextLine();switch(estadoAtual){case1:"ligar"if(lampada.isLigada())if(comando.equals("ligar"))System.out.println("lampada ligada.");lampada.setLigada(true);break;case2:"desligar"if(comando.equals("desligar"))if(lampada.isDesligada())System.out.println("lampada desligada.");lampada.setLigada(false);break;default:System.out.println("lampada desligada.");lampada.setLigada(false);}}
1
111aaa
Existe algo que posso fazer além disso?
W
wilsonettolobo
import java.util.Scanner;
publicclassMain{publicstaticvoidmain(String[]args){Stringcomando="ligar";Scannersc=newScanner(System.in);Lampadalampada=newLampada();intestadoAtual;System.out.print("Use o comando 'ligar' para ( ligar a lampada ) ou 'desligar' para ( desligar a lampada).");comando=sc.nextLine();switch(comando){case"ligar":if(lampada.isLigada())if(comando.equals("ligar"))System.out.println("lampada ligada.");lampada.setLigada(true);break;case"desligar":if(comando.equals("desligar"))if(lampada.isDesligada())System.out.println("lampada desligada.");lampada.setLigada(false);break;default:System.out.println("lampada desligada.");lampada.setLigada(false);}}}
tente algo assim!
1
111aaa
Valeu pela resposta
1
111aaa
Existe um problema quando envio para a linha do comando ligar, a lampada fica desligada
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Stringcomando="ligar";Scannersc=newScanner(System.in);Lampadalampada=newLampada();intestadoAtual;System.out.println("\n\n\nUse o comando 'ligar' para ( ligar a lampada ) ou 'desligar' para ( desligar a lampada).\n\n\n");comando=sc.nextLine();switch(comando){case"ligar":if(comando.equals("\n\n\n ligar"))// if(lampada.isLigada())System.out.println("\n\n\n lampada ligada.");lampada.setLigada(true);break;case"desligar":if(comando.equals("\n\n\n desligar"))// if(lampada.isDesligada())System.out.println("\n\n\n lampada desligada.");lampada.setLigada(true);break;default:System.out.println("lampada desligada.");lampada.setLigada(false);}}}
pq esse erro ocorre?
1
111aaa
pq esse erro ocorre?
Lampada.java
publicclassLampada{privatebooleanligada=false;/* * Métodos acessores e modificadores */publicvoidsetLigada(booleanalteraEstado){if(isLigada()!=alteraEstado)this.ligada=alteraEstado;}publicbooleanisLigada(){returnligada;}}