jak zmodyfikowac kod programu ktory wyswietla liste imion??

0

Witam, mam ksiazke z ktorej robie cwiczenia i nie rozumiem za bardzo jednego z nich.
Kod programu:

import java.util.Scanner;

/* This program let the user to type 10 names and display them */
class NameList
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String[] name = new String[10];
int count;

	for (count = 0; count < 10; count++)
	{
		System.out.print("Input a name: ");
		name[count] = input.next();
	}
	
	for (count = 0; count >10; count++)
	{
		System.out.println(name[count]);
	}
}

}

Moim zadaniem jest zmodyfikowac ten kod tak aby uzytkownik nie musial wparowadzac imion aby wyswietlic liste. Zamiast wprowadzac 10 imion, zainicjowac nowa liste w deklaracji String.
Zastanawiam sie czy aby przypadkiem nie musze tam uzyc while do zakonczenia programu ale wtedy chyba musze pozbyc sie petli for bo nawet jak bede w while to for i tak wykona sie 10 razy. Jak widac nie mam na to konkretnego pomyslu wiec bede wdzieczny za kazda podpowiedz i rade.
Pozdrawiam

0
/* This program let the user to type 10 names and display them */
class NameList
{
        public static void main(String[] args)
        {
                Scanner input = new Scanner(System.in);
                String[] name = new String[]{"imie1", "imie2", itd , "imie10"};
                int count;               
                for (count = 0; count >10; count++)
                {
                        System.out.println(name[count]);
                }
        }
}

O to chodzi?

0

Tak ale zapisywanie imion to nie problem. Problemem jest jak zrobic zeby nie trzeba bylo wpisywac wszystkich 10 imion aby zobaczyc liste. Musi tam byc chyba jakis warunek dla ktorego petla zostanie przerwana i wyswietlona lista imion ktore zostaly wprowadzone do tej pory, a nsstepnie zapytanie czy otworzyc nowa liste czy zakonczyc program. Ja to tak widze tylko nie z bardzo wiem jak to zrobic.

0

Pusta linia przerywa wprowadzanie.
Po wypisanie należy podać, czy chcemy kontynuować.

import java.util.Formatter;
import java.util.Scanner;

/* This program let the user to type 10 names and display them */
public class NameList {
	
	private static final String YES = "Y";
	private static final String NO = "N"; 
	private static final String CONTINUE_QUESTION = new Formatter().format("Continue (%s/%s)?", YES, NO).toString();
	private static final String NAME_PROMPT = "Input a name: ";
	
	private final String[] buffer = new String[10];
	private int count = 0;
	private final Scanner input = new Scanner(System.in);
	
	public static void main(String[] args) {
		NameList nameList = new NameList();
		nameList.loopGetAndPrintInput();
	}
	
	private void loopGetAndPrintInput() {
		do {
			count = getInput();
			printInput();
		} while (askIfContinue());
	}
	
	private int getInput() {
	        int lineCount = 0;
		while (lineCount < buffer.length) {
			System.out.println(NAME_PROMPT);

			String line = input.nextLine();

			if ("".equals(line)) {
				break;
			}
			
			buffer[lineCount++] = line;
		}
		return lineCount;
	}
	
	private void printInput() {
		assert (count < buffer.length);
		
		for (int i = 0; i < count; i++) {
			System.out.println(buffer[i]);
		}
	}

	private boolean askIfContinue() {
		String choice;
		do {
			System.out.println(CONTINUE_QUESTION);
			
			choice = input.nextLine();
		} while (!choice.equals(YES) && !choice.equals(NO));

		return choice.equals(YES);
	}
}
0

LukaStrz jednak miales racje. Tak wlasnie mialo to wygladac. Dzieki wielkie za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1