Как я могу прочитать несколько поплавков из одной строки с помощью сканера? - PullRequest
1 голос
/ 13 апреля 2020

Я новый программист, и для выполнения задания мне нужно написать программу, которая просит пользователя ввести три числа и возвращает им наименьшее количество. Я не знаю, как сделать каждую запись своим собственным поплавком. Пока у меня есть:

static float smallest(float a, float b, float c);

System.out.println("Enter three numbers");

Я не знаю, как объяснить, что следующая строка содержит числа с плавающей запятой для a, b и c. Мы также только что узнали, что означает «stati c float smallst», и я все еще в замешательстве, поэтому извините, если ответ очевиден.

Ответы [ 3 ]

0 голосов
/ 13 апреля 2020

Из javado c для класса Scanner:

Сканер разбивает свои входные данные на токены с помощью шаблона разделителя, который путем по умолчанию соответствует пробелу.

Это означает, что вы можете ввести три float числа, разделенные пробелом в одной строке, и прочитать все три с помощью Scanner.

Очевидно, вы хотите, чтобы ваш Программа для приема этих трех номеров от пользователя. Следовательно, вы можете создать Scanner, который оборачивает стандартный ввод, то есть System.in. Ниже приведен пример кода:

float a;
float b;
float c;
Scanner stdin = new Scanner(System.in);
System.out.print("Enter three numbers: ");
if (stdin.hasNextFloat()) {
    a = stdin.nextFloat();
}
if (stdin.hasNextFloat()) {
    b = stdin.nextFloat();
}
if (stdin.hasNextFloat()) {
    c = stdin.nextFloat();
}

Обратите внимание, что приведенный выше код принимает только три float числа, но не определяет, какое из них является наименьшим - поскольку вы только спрашивали, как принять три float числа.

Вот пример запуска приведенного выше кода:

Enter three numbers: 1.1 2.2 3.55
0 голосов
/ 13 апреля 2020

Изменить println на печать

System.out.print("Enter three numbers: ");

и

использовать useDelimiter (шаблон) in java .util.Scanner

Scanner myObj = new Scanner(System.in).useDelimiter("\\s* \\s*");
0 голосов
/ 13 апреля 2020
import java.util.Scanner;

class MyClass {
  public static void main(String[] args) {
    Scanner myObj = new Scanner(System.in);

    System.out.println("Enter three numbers");

    float a = myObj.nextFloat();
    float b = myObj.nextFloat();
    float c = myObj.nextFloat();

    System.out.println("Smallest numb: " + smallest(a, b, c));

  }
}
...