Как правильно использовать параллельные массивы с помощью Java Util.Scanner? - PullRequest
0 голосов
/ 24 октября 2018

Я работаю над заданием с массивами.Я должен использовать параллельные массивы, однако у меня возникают трудности с желаемым выводом, который я хочу, чтобы код генерировалБеда в конце кода, где он просит ввести в день.Я пытался сделать String [i] days.nextLine, String days next.Line, но это не работает.

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

  System.out.println("Weekday     Drink       Original-Price     Discount-Price");
  System.out.println("------------------------------------------------------");
  System.out.println(day +  drink  + price      +          "IDK"      );

enter image description here

import java.util.Scanner;

public class Cafeteria 
{
    public static void main (String [] args)
    {
        String [] days = {"Monday: ", "Tuesday: ", "Wednesday: ", "Thursday: ", "Friday: ", "Saturday: ", "Sunday: "}; 
        String [] drinks = {"Soda", "Sweet Tea", "Lemonade", "Frozen   Lemonade", "Coffee-Hot", "Coffee-Iced", "Latte"}; 
        double [] price = {1.00, 1.50, 1.75, 2.00, 2.25, 2.50, 3.75};

        for ( int i = 0; i < days.length; i++)
        {
        }

        Scanner scan = new Scanner(System.in);
        System.out.println("What is the price of a Soda? ");
        price [0] = scan.nextDouble();

        System.out.println("What is the price of a Sweet Tea? ");
        price [1] = scan.nextDouble();

        System.out.println("What is the price of a Lemonade? ");
        price [2] = scan.nextDouble();

        System.out.println("What is the price of a Frozen Lemonade? ");
        price [3] = scan.nextDouble();

        System.out.println("What is the price of a Coffee-Hot? ");
        price [4] = scan.nextDouble();

        System.out.println("What is the price of a Coffee-Iced? ");
        price [5] = scan.nextDouble();

        System.out.println("What is the price of a Latte? ");
        price [6] = scan.nextDouble();
        System.out.println();

        System.out.println("Which day of the week do you want the discounted drink price for?");

        System.out.println("Weekday    Drink   Original-Price  Discount-Price");
        System.out.println("-------------------------------------------------");
    }
}

1 Ответ

0 голосов
/ 24 октября 2018

Если я правильно понимаю, вы пытаетесь сканировать строку, но ваш код не работает.Это может быть связано с тем, что при попытке поиска строки, используя nextLine(), она сканирует оставшуюся часть /n (разрыв строки) из предыдущего вызова nextDouble().Так что просто сделайте что-то вроде следующего:

System.out.println("What is the price of a Latte? ");
price[6] = scan.nextDouble(); // nextDouble() only returns the double value and leaves the '/n' character still in the buffer

scan.nextLine(); // Flushes out the left over '/n'
System.out.println("Which day of the week do you want the discounted drink price for?");
String day = scan.nextLine();

Теперь он получит введенную вами строку и присвоит ее переменной day.

...