#java
#java
Вопрос:
Я новый программист, выполняющий задание для класса. Я пытаюсь рассчитать прибыль от продажи обуви на разных веб-сайтах. Однако, когда я пытаюсь получить переменную плату, вывод возвращается как 0
. Пожалуйста, помогите, спасибо!
Я попытался сделать Fee = 5;
однако вывод все еще был 0.0
import java.util.Scanner;
public class Shoe
{
private double Cost;
private double SoldPrice;
private double ShippingCost;
private double Fee;
public Shoe()
{
Scanner input = new Scanner(System.in);
System.out.println( " Enter Cost Of Shoe. " );
Cost = input.nextDouble();
System.out.println ( " Enter Sold Price Before Fees. ");
SoldPrice = input.nextDouble();
System.out.println ( " Enter shipping cost. " );
ShippingCost = input.nextDouble();
System.out.println ( " How did you sell the Shoe? [ Stockx , Ebay , Goat , Local , Grailed , Paypal ] ? ");
//user MUST enter the provided sites perfectly.
{
String choice = input.next();
if(choice.equals(" Stockx "))
{
Fee = 0.09;
//determines what the value of Fee should be set to, depending on where the shoe was sold.
}
else if (choice.equals(" Ebay "))
{
Fee = (( 0.029) 0.3 );
}
else if(choice.equals(" Goat "))
{
Fee = (( 0.095 ) 5 );
}
else if(choice.equals(" Local "))
{
Fee = 0;
}
else if(choice.equals(" Grailed "))
{
Fee = (( 0.065 ) 0.3 );
}
else if(choice.equals(" Paypal "))
{
Fee =(( 0.029) 0.3 );
}
else if (choice.equals(" Test "))
{
Fee = 5;
//attempted to test if it was just rounding down for variables, however, the output was 0 when Fee was 5.
}
System.out.println( Fee );
}
}
}
Комментарии:
1. Чтобы сделать ваш код читаемым, правильно расставив отступы, увеличились бы шансы людей прочитать его.
2. Вы знаете, что если вы сравните свои строки с
" Stockx "
пробелами вокруг слова matter, верно?3. Подсказка: попробуйте распечатать
choice
, чтобы вы знали, что часть «захват пользовательского ввода» работает должным образом.4. Я почти уверен,
Scanner.next()
что по умолчанию ничего не возвращает, начинающееся или заканчивающееся пробелом…5. Также: все имена переменных в Java идут в camelCase. Это должна быть плата или стоимость. Это делает ваш код намного сложнее для чтения опытным Java-программистам.
Ответ №1:
Федерико Клез Каллока прав.
Удалите пробелы, окружающие значения для проверки, и это сработает.
Для безопасности вы даже можете использовать trim()
метод при вводе, поэтому, даже если вы введете " Ebay "
, он будет работать.