0

Я совсем недавно начал учиться программировать на Java, вопрос следующий: решил немного усложнить одно из упражнений по Шилдту и вместо уже заданного значения переменной dist предлагаю юзеру ввести это значение.

class Vehicle{
int passengers;
int fuelcap;
int mpg;

Vehicle (int p, int f, int m) { passengers=p; fuelcap=f; mpg=m; }

int range() { return mpg*fuelcap;

}

double fuelneeded(int miles) {

return (double) miles/mpg; } }

class VehConsDemo1 {

public static void main(String args[])

throws java.io.IOException{

Vehicle minivan=new Vehicle(7,16,21);

Vehicle sportscar=new Vehicle(12,14,12);

double gallons;

int dist;

System.out.println("Введите количество миль для рассчета"); dist=(int)System.in.read();

gallons=minivan.fuelneeded(dist);

System.out.println("Для преодоления " + dist + " миль фургону нужно " + gallons + " галлонов топлива");

gallons=sportscar.fuelneeded(dist);

System.out.println("Для преодоления " + dist + " миль спорткару нужно " + gallons + " галлонов топлива"); } }

Собственно, вся проблема в том, что я ввожу условные 100 (миль), на выходе получаются совсем другие результаты. Что делаю не так? Заранее благодарю. введите сюда описание изображения

1 Answers1

3

System.in.read() - читает один байт Если вы хотите прочитать пользовательский ввод, используйте хотя бы сканер

Scanner sc = new Scanner(System.in);
dist = sc.nextInt();
Pentiux
  • 518
  • 2
  • 9