Отнесения я работаю над предназначено для отображения стихов Двенадцать дней Рождества в зависимости от того, что номера вы вводите (1-12).не может выяснить правильное условие во время цикла
В наличии две петли while
. Первое - проверить, что введенный номер находится в этом диапазоне. Это прекрасно работает. Второй цикл while использует два оператора switch
. Первый помещает правильный суффикс в конец любого числа, которое вы вводите. Второй переключатель определяет, какой подарок связан с днем, а затем он отображает стих следующим образом:
На третий день Рождества мой настоящая любовь дала мне
Три французских кур,
двух горлиц и
куропатки в грушевого дерева
Вот мой, что я сделал до сих пор:
import java.util.Scanner;
public class TwelveDays
{
public static void main (String[] args)
{
int lastDay = 0; // last day
final int MAX = 12;
Scanner scan = new Scanner(System.in);
//Get the last day and use input validation
System.out.println("How many days (1 to 12)? ");
lastDay = scan.nextInt();
//Begin 1st while
while (lastDay <= 0 || lastDay > MAX)
{
System.out.println("How many days (1 to 12)? ");
lastDay = scan.nextInt();
}
int day = 1; //loop control variable for song verses
//Begin 2nd while
while ()
{
System.out.print("On the " + lastDay);
//Output the suffix for the day
String suffix = " "; // temporary suffix value
//Begin 1st switch
switch(lastDay)
{
case 1:
suffix = ("st");
System.out.print(suffix);
break;
case 2:
suffix = ("nd");
System.out.print(suffix);
break;
case 3:
suffix = ("rd");
System.out.print(suffix);
break;
default:
suffix =("th");
System.out.print(suffix);
break;
}
System.out.println(" day of Christmas my true love gave to me");
//Begin 2nd switch
switch(lastDay)
{
case 1:
System.out.println("A partridge in a pear tree.");
break;
case 2:
System.out.println("Two turtle doves, and");
break;
case 3:
System.out.println("Three French hens,");
break;
case 4:
System.out.println("Four calling birds");
break;
case 5:
System.out.println("Five golden rings,");
break;
case 6:
System.out.println("Six geese a-laying,");
break;
case 7:
System.out.println("Seven swans a-swimming,");
break;
case 8:
System.out.println("Eight maids a-milking,");
break;
case 9:
System.out.println("Nine ladies dancing,");
break;
case 10:
System.out.println("Ten lords a-leaping,");
break;
case 11:
System.out.println("Eleven pipers piping,");
break;
case 12:
System.out.println("Twelve drummers drumming,");
break;
}
}
}
}
Извините, если мое форматирование бедно. Я новичок в java. Кажется, что независимо от того, какое условие я ставлю для второго, это всегда заканчивается как бесконечный цикл, или он выводит только то количество подарков, которое я ставлю в двенадцать раз.
Вы сами создали бесконечный цикл. –
В вашем втором цикле while нет никакого условия, и вы не можете перерыть в любом месте цикла (кроме тех, что указаны в ваших случаях). Как вы ожидаете, что это закончится? – Zarwan
Пожалуйста, наслаждайтесь некоторыми [дополнительными методами отладки] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/), чтобы помочь вам отладить это. –