Problemas com estrutura condicional em Java

Pessoal , sou iniciante, estou com dificuldades na parte de estruturas condicionais neste algoritmo em Java que pelo visto não está lendo a estrutura condicional criada. Por favor alguém poderia me ajudar ? Segue o código…

  1. Uma empresa de aluguel de carros precisa cobrar pelos seus serviços. O
    aluguel de um carro custa R$90 por dia para carro popular e R$150 por dia para
    carro de luxo. Além disso, o cliente paga por Km percorrido. Faça um programa
    que leia o tipo de carro alugado (popular ou luxo), quantos dias de aluguel e
    quantos Km foram percorridos. No final mostre o preço a ser pago de acordo com a
    tabela a seguir:
  • Carros populares (aluguel de R$90 por dia)

  • Até 100Km percorridos: R$0,20 por Km

  • Acima de 100Km percorridos: R$0,10 por Km

  • Carros de luxo (aluguel de R$150 por dia)

  • Até 200Km percorridos: R$0,30 por Km

  • Acima de 200Km percorridos: R$0,25 por Km
    */
    package questoesguanabara;

import java.util.Scanner;

/**
*

  • @author Andre
    /
    public class ListaGuanabara35 {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.println(“Qual o tipo de carro alugado?”);
    String tipo = in.nextLine();
    System.out.println(“Quantos quilometros foram percorridos?”);
    float quil = in.nextFloat();
    System.out.println(“Quantas diárias a cobrar?”);
    int dias = in.nextInt();
    float total = 0;
    if((tipo== “luxo”)&&(quil<=200)){
    total= (float)((150
    dias)+ (quil0.30));
    System.out.println(“O preço a ser pago é : " + total + " reais.”);
    } else if ((tipo==“luxo”)&&(quil>200)) {
    total= (float)((150
    dias)+ (quil*0.25));
    System.out.println(“O preço a ser pago é : " + total + " reais.”);

     } else if ((tipo=="popular")&&(quil<=100)){
         total=(float)((90*dias)+ (quil * 0.20)); 
          System.out.println("O preço a ser pago é : " + total + " reais.");
         } else if ((tipo=="popular")&&(quil>100)){
             total=(float)((90*dias)+(quil*0.10));
             System.out.println("O preço a ser pago é : " + total + " reais.");
         }
     }      
    

    }

String não é um tipo primitivo, é uma classe e os objetos das classes devem ser comparados com o método equals e não ==.

Outra coisa, praticamente nenhum professor ensina que os métodos nextFloat e nextInt não consomem a quebra de linha gerada ao pressionar ENTER então você pode ter comportamentos inesperados.
Se quer utilizar o Scanner para ler entrada de dados pelo teclado, utilize somente o método nextLine.

1 curtida

Obrigado pela orientação. Utilizei o método equals e funcionou perfeitamente. Mais uma vez muito obrigado !!