Erro no if e break

6 respostas
Auai

Bom galera, eu não sei qual o erro aqui. Mas parece que está no if e break.
Se alguém puder ajudar, eu agradeceria.

import java.util.Scanner;
import java.lang.System;

public class ex9 {
        
    
    public ex9() {
    }
    
    
    public static void main(String[] args) {
        Scanner scan = new Scanner (System.in);
        int opcao;
        float pes, valor_final;
        System.out.println("Escolha qual conversao deseja fazer:");
        System.out.println("1 - Polegadas");
        System.out.println("2 - Jardas");
        System.out.println("3 - Milhas");
        opcao = scan.nextInt();
        if (opcao &lt= 0 || opcao &gt 3) {
               	System.out.println("Digite um numero valido.");
        		break; }
        		else {
        		
        System.out.println("Digite o numero em pes:");
        pes = scan.nextFloat();
        
             	if (opcao = 1) {
             
        	 	valor_final = (pes * 12);
        		}
        	 if (opcao = 2) {
        	 	
        	 	valor_final = (pes/3);
        	
        	 	}
        	 if (opcao = 3) {
        	 	
        	 	valor_final = (pes/5280);
        	 	}
        	
        	
        	}
        	System.out.print("O valor requerido e "+ valor_final+".");
    }
}

6 Respostas

erickcellani

break é usado em loop e switch
por isso da o erro:

"break cannot be used outside of a loop or a switch "

:smiley:

esb

Corrigi o código pra você, atente para as correções:

1 - Em vez de break, use return. O comando break deve ser usado apenas dentro de loops.
2 - Sua comparação utilizando o int opcao deve usar dois sinais de igual e não apenas um.
3 - Você esqueceu de inicializar o float valor_final.

[]'s
Eduardo

import java.util.Scanner;   
import java.lang.System;   
  
public class ex9 {   
           
       
    public ex9() {   
    }   
       
       
    public static void main(String[] args) {   
        Scanner scan = new Scanner (System.in);   
        int opcao;   
        float pes, valor_final = 0f;   
        System.out.println("Escolha qual conversao deseja fazer:");   
        System.out.println("1 - Polegadas");   
        System.out.println("2 - Jardas");   
        System.out.println("3 - Milhas");   
        opcao = scan.nextInt();   
        if (opcao <= 0 || opcao > 3) {   
                   System.out.println("Digite um numero valido.");   
                return; }   
                else {   
                   
        System.out.println("Digite o numero em pes:");   
        pes = scan.nextFloat();   
           
                 if (opcao == 1) {   
                
                 valor_final = (pes * 12);   
                }   
             if (opcao == 2) {   
                    
                 valor_final = (pes/3);   
               
                 }   
             if (opcao == 3) {   
                    
                 valor_final = (pes/5280);   
                 }   
               
               
            }   
            System.out.print("O valor requerido e "+ valor_final+".");   
    }   
}
Auai

Muito obrigado pela atenção.
Mas uma dúvida…

valor_final = 0f

Porque você pois o ‘0f’?
Não seria só “0”?

esb

Pode ser 0 sim, mas o f ou F indica que o 0 trata-se de um float. O mesmo vale para o double e a letra d ou D.

Pedrosa

Coloque um return no lugar do break, para comparar um inteiro use == e não = e inicialize suas variaveis float com of;

Auai

Valeu
Obrigado pela atenção ai galera.

[]'s pra todos…

Criado 22 de agosto de 2007
Ultima resposta 22 de ago. de 2007
Respostas 6
Participantes 4