Ajuda com Algoritmo de Java Básico

Erros neste Algoritmo em Java. Não está achando a variável precodagaveta, tanto no começo, quanto no final do Algoritmo. Por gentileza, alguém pode me ajudar a consertar este código?

import java.util.Scanner;
public class PrecoDaMesa {
public static void main (String args []) {

    System.out.println ("Programa para Calcular o Preço de Mesas: ");
    
    System.out.println ("Qual o Comprimento da Mesa? ");
    Scanner sc = new Scanner (System.in);
    double comprimento = sc.nextDouble();
    
    System.out.println ("Qual a Largura da Mesa?");
    double largura = sc.nextDouble();
    
    System.out.println("Qual o Tipo de Madeira? Digite 1 para Mogno. Digite 2 para Carvalho");
    int tipodemadeira = sc.nextInt();
    
    System.out.println("Qual a Quantidade de cada Gaveta?");
    int quantidadedecadagaveta = sc.nextInt();
    
    System.out.println(calcularPrecoDaMesa(precodagaveta, comprimento, largura, tipodemadeira)); ****não acha variável precodagaveta)**
}

public double calcularPrecoDaMesa (int precodagaveta, double comprimento, double largura, int tipodemadeira) {

    double areadamesa = comprimento * largura;
    double precodometroquadrado = areadamesa * 100;
    double precodamadeira = 0.0;
    
    if (areadamesa > 2) {
        int precominimo = 50;
    }
    if (tipodemadeira == 1) {
        precodamadeira = 150;
    } else {
    if (tipodemadeira == 2) {
        precodamadeira = 250;
    } else {
        System.out.println("Número Errado. Digite 1 ou 2");
        }
    }
    
    precodagaveta = quantidadedecadagaveta * 30; **(não acha variável precodagaveta)**
    
    double precototaldamesa = precodometroquadrado + precodamadeira + precodagaveta;
    return precototaldamesa;
}

}

Boa tarde, Igor_Cordeiro.

Estou :eye: o seu algoritmo, vc pode tirar uma dúvida minha : Qual é preço mínino para área de mesa menor que 2?
Revendo o seu fonte, desconfio que o primeiro parâmetro seja a quantidade de gavetas no método calcularPrecoDaMesa.

Veja o que fiz com o seu código fonte :

import java.util.Scanner;

public class Principal
{
public static void main(String[] args)
{
System.out.println ("Programa para Calcular o Preço de Mesas: ");

System.out.println ("Qual o Comprimento da Mesa? ");
Scanner sc = new Scanner (System.in);
double comprimento = sc.nextDouble();
System.out.println ("Qual a Largura da Mesa?");
double largura = sc.nextDouble();
System.out.println("Qual o Tipo de Madeira? Digite 1 para Mogno. Digite 2 para Carvalho");
int tipodemadeira = sc.nextInt();
System.out.println("Qual a Quantidade de cada Gaveta?");
int quantidadedecadagaveta = sc.nextInt();

double resultado = calcularPrecoDaMesa(quantidadedecadagaveta, comprimento, largura, tipodemadeira); 
System.out.println( "Preço a pagar das Mesas : " + resultado);

}

public static double calcularPrecoDaMesa(int quantidadedecadagaveta, double comprimento, double largura, int tipodemadeira)
{
double areadamesa = comprimento * largura;
double precodometroquadrado = areadamesa * 100;
double precodamadeira = 0.0, precodagaveta = 0.0;
double precoMinimo = 50.0;

 // só falta vc esclarecer a dúvida anterior postada por mim
 /** 
  *if (areadamesa < 2) {
  *   precominimo = 50;
 }
 */

 switch (tipodemadeira)
  {
    case 1 : precodamadeira = 150.0; break; 
    case 2 : precodamadeira = 250.0; break; 
    default : System.out.println("Código de tipo de madeira inválido! Digite 1 ou 2.");  
  }  		
  precodagaveta = quantidadedecadagaveta * 30;   
  return precodometroquadrado + precodamadeira + precodagaveta;

}
}

Boa tarde! Desculpa pela pequena demora em responder, tudo bem?
O preço mínimo é de 200 reais.
O Código executou! Muito obrigado por toda a ajuda!

Blz. :slight_smile:

Eu tenho mais uma dúvida nesse Algoritmo, pode ser?
Mudando de switch case para if, como o compilador pode ler de String para int?
Fazendo algumas mudanças:

import java.util.Scanner;

public class PrecoDaMesa {

public static void main(String[] args) {

Scanner sc = new Scanner (System.in);
double comprimento = sc.nextDouble();

double largura = sc.nextDouble();

System.out.println(“Qual a Quantidade de cada Gaveta?”);
int quantidadedecadagaveta = sc.nextInt();

System.out.println(“Qual o Tipo de Madeira?”);
String tipodemadeira = sc.next();

double resultado = calcularPrecoDaMesa(quantidadedecadagaveta, comprimento, largura, tipodemadeira);  __*(error: incompatible types: String cannot be converted to int**_

** double resultado = calcularPrecoDaMesa(quantidadedecadagaveta, comprimento, largura, tipodemadeira);**
System.out.println( "Preço a pagar das Mesas : " + resultado);
}

public static double calcularPrecoDaMesa(int quantidadedecadagaveta, double comprimento, double largura, int tipodemadeira) {
double areadamesa = comprimento * largura;
double precodometroquadrado = areadamesa * 100;
double precodamadeira = 0.0, precodagaveta = 0;
double precoMinimo = 200.0;
double resultado = precodometroquadrado + precodamadeira + precodagaveta;

if (areadamesa < 2) {
double precominimo = 200;
}

if (tipodemadeira == “mogno”) { (error: incomparable types: int and String
precodamadeira = 150.0;

} else {

if (tipodemadeira == "carvalho") { **(error: incomparable types: int and String**

** if (tipodemadeira == “carvalho”)**
precodamadeira = 200.0;

} else{  
precodamadeira = 0.0;
    }  		

precodagaveta = quantidadedecadagaveta * 30;

return resultado;
}
}
}


Até aqui ok, mas repare no método calcularPrecoDaMesa
[code]
public static double calcularPrecoDaMesa(int quantidadedecadagaveta, double comprimento, double largura, int tipodemadeira)[/code]

o último argumento do método, tipodemadeira, está declarado como um int. int e String são tipos imcompativeis. ou seja o tipo da madeira deve ser String e a comparação deve ser feita através do método equalsIgnoreCase() da classe String.

Até aqui ok, mas repare no método calcularPrecoDaMesa

public static double calcularPrecoDaMesa(int quantidadedecadagaveta, double comprimento, double largura, int tipodemadeira)

o último argumento do método, tipodemadeira, está declarado como um int. int e String são tipos imcompativeis. ou seja o tipo da madeira deve ser String e a comparação deve ser feita através do método equalsIgnoreCase() da classe String.