Magia kodu -petla for

0

Nie wiem o co chodzi ale.. Prosta petla napisana w Java ale to nie ma znaczenia. Chce zeby petla wyswietlala sie "ile" razy w zaleznosci od podanej liczby od uzytkownika. Potem wyswietla imie i nazwisko tez po podaniu przez uzytkownika.
Problemy:

  • petla nie dziala od 0? ani od 1?
    -przykladowo jak ponizej po wpisaniu 2 albo nie wykonuje sie wgl albo wykonuje sie wcale albo w nieskonczonosc wpada? to zart?
  • jakim prawem tekst "podaj imie i nazwisko" wysiwetlany jest dwa razy? nawet gdy podam 0?

wiem ze moze tu byc cos z warunkeim petli ale juz na kartce zaczolem to rozpisywac i wydaje mi sie ok.. nosz..przeciez to tylko pentelka zwykla

System.out.println("Dodawanie uzytkownika do listy:");
	
	System.out.println("Ilu użytkownikow chcesz wprowadzic?");
	ile = scan.nextInt();

for(int i = 0 ; i < ile ; i++)
	{
	System.out.println("Podaj imie i nazwisko: " + ile);
	dane = scan.nextLine();
	
	System.out.println(dane);
	
	
	aUsers.add(dane);
	}

Kod zwraca:

Dodawanie uzytkownika do listy:
Ilu użytkownikow chcesz wprowadzic?
2 - to wpisuje
Podaj imie i nazwisko: 2

Podaj imie i nazwisko: 2

0

Po

 ile = scan.nextInt(); 

daj

 scan.nextLine();

ponieważ nextInt pobiera tylko wartość a "\n" zostaje w buforze.

0

Pętla jest okej.

String liczba = scan.nextLine();
int ile = Integer.valueOf(liczba);
0

nie będę tworzył nowego posta, potrzebuję pomysłu

mam dwie listy:
<ort>public static ArrayList<Object> aUsers = new ArrayList<Object>( );
public static ArrayList<Object> aRate = new ArrayList<Object>( );</ort>

jedna to jacys tam uczniowie druga oceny. problem w tym ze uczniow dodaje w case

czyli uczen> oceny do niego potem nastepny

Jak zrobic zeby kazdy uczen mial tak jakby swoja pulke w danej tablicy i oceny byly powaizane z uczniem bo w tej chwili wszystko przypisuje sie na koniec tablicy czyli np:

t1:[jan kowalski, zbyszek z] t2:[2,3,5(do teraz oceny 1),5,6,3,(oceny drugiego)]

ale jak je rozrozniac?

0

Stwórz klasę Uczen, w której jednym z pól będzie lista ocen - typ

ArrayList<Double>

.

0

Dzieki!

Co do samej petlki for jeszcze.

Petla ma dodawac uzytkownikow do listy nastepnie ocenki. Jedno i drugie pytany jest uzytkownik ile chce podac.

System.out.println("Ilu uzytkownikow chcesz dodac?:");
	ile1 = scan2.nextInt();

	for(int x = 1 ; x <= ile1 ; x++)
    {	
	System.out.println("Dodawanie uzytkownika do listy:");
	System.out.println("Podaj imie i nazwisko: ");
	dane = scan.nextLine();
	aUsers.add(dane);
    
    System.out.println("Ile ocen ma uczen?");
	scan2.nextLine();
    ile2 = scan2.nextInt();
	
	
	
	for(int i = 1 ; i <= ile2 ; i++)
    {		
	System.out.println("Podaj ocene nr: " + i);
	rate = scan.nextInt();
	aRate.add(rate);
    }
	
    }

WYJSCIE:

Ilu uzytkownikow chcesz dodac?:
2
Dodawanie uzytkownika do listy:
Podaj imie i nazwisko:
asd
Ile ocen ma uczen?
2
Podaj ocene nr: 1
1
Podaj ocene nr: 2
2
Dodawanie uzytkownika do listy:
Podaj imie i nazwisko:
Ile ocen ma uczen? // NA TYM ETAPIE COS JEST NIE TAK?


Cała lista = [asd, ]-[2, 1, 2]

Problem w tym ze wydaje mi sie ze petle sa w porzadku lecz nie moge podawac kolejnego uzytkownika gdyz Od razu wchodzi tekst ile ma on ocen.

0

Niczego nie zrozumiałeś,

scan.nextLine();

masz dopisać tylko po ... = scan.nextInt();

. Poza tym, powinien być tylko jeden Scanner, a Ty masz dwa (`scan` i `scan2`).
0

Dzieki twoja pomoc jest nieoceniona! Ta zmiane zapamietam na pewno, nie wiem czemu wczesniej sie nie zastosowałem do tego.

Jeszcze wyswietlanie tego:

Wymyslilem cos takiego:

for(int i=0;i<aUsers.size();i++)
	{
		for(int x=0;i<aRate.size();x++)
		{
	 System.out.println("iteracja" +i + ":" + aUsers.get(x)+ " " + aRate.get(x)+"\n");
		}	
	}

ale w tym na ta chwile petla jest nie skonczona poza tym nie wiem czy bedzie to odpowiadac schematowi wyswietlania
user - ocena
user - ocena

po prostu wydaje mi sie ze jesli mamy np 2 userow to musze przejsc przez wszystkich userow a nastepnie po ich ocenach skoro np jeden ma 5 ocen a drugi 10

Ew problem jest, a to juz mnie przewyzsza, bo jestem laikiem:

java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at dziennik.User.view(User.java:61)
at dziennik.Dziennik.viewUser(Dziennik.java:17)
at dziennik.Dziennik.main(Dziennik.java:56)

Chyba ze jest inny sposb zeby to wyswietlic bez takich skomplikowanych sposobow

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