Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Java разработка , не могу найти ошибку

qwfvd Ученик (160), на голосовании 1 год назад
Здравствуйте, помогите пожалуйста , только учусь.
не стоит вникать в логический смысл моих вычислений в программе, т.к. изначально числа были другие , разных типов , просто в поиске ошибки я начал переводить все значения к int.
Если можно то для максимально на дурака объясните мне что нужно исправить .










import java.util.Scanner;


public class Solution {
static final int DISCOUNT_FIVE = 5; // скидка в %
static final int VALUE_ADDED_TAX = 20; // ставка НДС в %
public static void main(String[] args) {
int fin_otvet;
String otvet;//вопрос об ндс
int Tov;//кол-во товара
int Cen;//цена товара
Scanner input = new Scanner( System.in );
System.out.println("Введите кол-во товара");
Tov=input.nextInt();
System.out.println("Введите стоимость товара");
Cen=input.nextInt();
if(Tov>=10){

do{
System.out.println("Введите включать ли стоимость НДС?yes/no");

otvet=input.next();
}
while(!"yes".equals(otvet)&&
!"no".equals(otvet));
if ("yes".equals(otvet))
fin_otvet=func_v(Tov,Cen,DISCOUNT_FIVE,VALUE_ADDED_TAX);
else
fin_otvet=func_v(Tov,Cen,DISCOUNT_FIVE);
}
else if(tov<10){
if ("yes".equals(otvet))
fin_otvet=func_v(Tov,Cen,VALUE_ADDED_TAX);
else
fin_otvet=func_v(Tov,Cen);
}
}
public static int func_v(int num1, int num2){
int buy;
buy=num1*num2;
return buy;
}
public static int func_v(int num1,int num2, int num3){
int buy;
buy=num1*num2*num3;
return buy;
}
public static int func_v(int num1,int num2,double num3, int num4){
int buy;
buy=num1*num2*num3*num4;
return buy;
}
}
Голосование за лучший ответ
Александр Искусственный Интеллект (301732) 1 год назад
если в смысл не вникать, то как знать что есть ошибка, и что есть задуманная работа программы?

почему не используешь форматирование кода?

запускать программу пробовал?

что делает вот этот пустой цикл:
 while(!"yes".equals(otvet)&&
!"no".equals(otvet));
Зеленая бяка Просветленный (41309) 1 год назад
Ошибка в условии if(tov<10). Имя переменной Tov записано неправильно. Необходимо исправить на if(Tov<10).
Мансур Сагижанулы Мыслитель (5322) 1 год назад
В коде есть несколько ошибок:

Переменная "tov" написана с ошибкой. Это должно быть "Tov" (заглавная "T").
Переменная "otvet" может не быть инициализирована перед первым использованием, что может вызвать ошибку во время компиляции. Вы должны инициализировать его некоторым значением по умолчанию (например, "no") перед циклом do-while.
Второй метод func_v имеет двойной параметр "num3", который несовместим с двумя другими методами func_v, которые принимают целочисленные параметры. Вы должны изменить тип "num3" на int, чтобы соответствовать двум другим методам.

Вот исправленный код:

import java.util.Scanner;
public class Solution { static final int DISCOUNT_FIVE = 5; // скидка в % static final int VALUE_ADDED_TAX = 20; // ставка НДС в %

Итог:

public static void main(String[] args) {
int fin_otvet = 0; // initialize to some default value
String otvet = "no"; // initialize to some default value
int Tov; // кол-во товара
int Cen; // цена товара

Scanner input = new Scanner(System.in);

System.out.println("Введите кол-во товара");
Tov = input.nextInt();

System.out.println("Введите стоимость товара");
Cen = input.nextInt();

if (Tov >= 10) {
do {
System.out.println("Введите включать ли стоимость НДС?yes/no");
otvet = input.next();
} while (!"yes".equals(otvet) && !"no".equals(otvet));

if ("yes".equals(otvet))
fin_otvet = func_v(Tov, Cen, DISCOUNT_FIVE, VALUE_ADDED_TAX);
else
fin_otvet = func_v(Tov, Cen, DISCOUNT_FIVE);
} else if (Tov < 10) {
if ("yes".equals(otvet))
fin_otvet = func_v(Tov, Cen, VALUE_ADDED_TAX);
else
fin_otvet = func_v(Tov, Cen);
}
}

public static int func_v(int num1, int num2) {
int buy;
buy = num1 * num2;
return buy;
}

public static int func_v(int num1, int num2, int num3) {
int buy;
buy = num1 * num2 * num3;
return buy;
}

public static int func_v(int num1, int num2, int num3, int num4) {
int buy;
buy = (int) (num1 * num2 * num3 * num4); // cast the result to int
return buy;
}
Похожие вопросы