Archief - [PROG][Java] Node result in repeating loop

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Wundagore

Legacy Member
doel van het programma is dat we een soort van "applicatie" kunnen installeren en met een administrator account kunnen we users via een gelinkte Lijst toevoegen zodat deze kunnen inloggen.

probleem is nu:
programma werkt als administrator zonder gebruikers toegevoegd.
voeg ik een gebruiker toe in een node dan kan ik met de gebruiker inloggen en alles doen, maar de administrator functie gaat niet.
de login functie lukt dan ook niet.
Reden:

de users zitten in een Lijst en de administrator niet.
bij elke login request wordt er gekeken of de naam voorkomt in het user bestand, als deze er niet in zit hoort de Lijst een null te returnen en van hieruit kijken we of de user een administrator is om vervolgens zo in te loggen.

op dit punt loopt het vast omdat mijn method om gebruikers op te vragen in een oneindige lus blijft zitten omdat de Lijst geen null object bevat maar in plaats van een null de laatste gebruiker blijft teruggeven.

code volgt hieronder, vragen stel ze maar!
Code:
	public User findUser(String username, String userpass){
		 Returnee = null;	
		 Temp = null;
		node = Users.getEersteNode();
		
		if (node == null) {
			return Returnee;
				}else if( node.getInhoud() instanceof User ) {		
					while (node != null) {			
						Temp = (User)node.getInhoud();
							if (Temp.getUserName().equalsIgnoreCase(username) && Temp.getPassw().equalsIgnoreCase(userpass)) {	
								Returnee = Temp;	
								break;
								}			
				node.getVolgendeNode();	
						}					
		}	
		return Returnee;
	}
Code:
	public void promptLogin(){
		System.out.print("Login: ");
		user = Console.readString();
		System.out.print("Passwoord: ");
		passuser = Console.readString();
		Temp = findUser(user,passuser);
		
		if( user.equalsIgnoreCase(Admin.getUserName()) && passuser.equalsIgnoreCase(Admin.getPassw()) ){
			Admin.Login();
			promptAdministratorApplicationChoices();
		}		
		else if( Temp != null){
			Temp.Login();
			CurrentUser = Temp;
			promptApplicationChoices();			
		} else {
			System.out.print("--- Toegang geweigerd! ---");
			TestApplication.promptChoices();
		}		
	}
Code:
	public void CreateUser(){
		
		Newbiedata = Application.askUser();
		Newbie = new User(Newbiedata,Newbiedata,this.getApplication());
		this.getApplication().Users.voegVooraanToe(Newbie);
		System.out.println("--- User " + Newbiedata + " werd gecreeërd. ---");	
		Application.promptAdministratorApplicationChoices();
	}
Code:
	public void voegVooraanToe(Object obj) {
		if (isLeeg()) {
			eersteNode = new LijstNode(obj);
			laatsteNode = eersteNode;
		} else {
			eersteNode = new LijstNode(obj, eersteNode);
		}
	}

Kn0t

Legacy Member
Don't reinvent the wheel!

Gebruik een List implementatie uit de standaard java collections API.

(Tenzij dit natuurlijk voor een schoolopdracht was, en je je eigen lijst moest implementeren)

En start je methodenamen en variabele namen met een kleine letter aub :)

Wundagore

Legacy Member
sorry van de var namen. is 5 maanden geleden dat ik nog een lijn java heb neergepoot.

en de Lijst krijgen we van de school uit. was inderdaad een taak maar ik zit muurvast nu.
wordt een lange nacht debuggen

Kn0t

Legacy Member
Allrighty then.

Ik zie niet in wat dit jullie kan bijbrengen om verplicht met een custom Lijst klasse te moeten werken, die dan overigens nog vrij omslachtig geïmplementeerd is, aangezien de interne Node objecten geëxposed worden.

Maar bon, ik vermoed dat

Code:
node.getVolgendeNode();

dit moet worden:

Code:
node = node.getVolgendeNode();

Wundagore

Legacy Member
Allright! :woohoo:

het werkt gewoon
na 2 x de method te herschrijven heeft dat het gedaan :lol:

dikke thx

dit is eigenlijk wel lame om zo lang op te zitten :sop:

Candyman66

Legacy Member
Hmm, ik vermoed dat Wundagor op het 2de jaar TI zit op de XIOS in diepenbeek ? :p

De opgave had ik vorig jaar ook in de eerste trimester en het was dezelfde die op het examen in het eerste jaar 2de trim gevraagd was ^^ Moest ge nog vast zitten, ik denk dat ik nog al mijn oplossingen van vorig jaar op cd had gezet als backup ;)

Wundagore

Legacy Member
Hell yeah
Go 2TI!

bedankt voor het aanbod maar liever niet,
ik kan de code van andere mensen niet verdragen.
wat ook de reden was waarom ik maar een 11 op vb.net van wouters
haar visie van object geörienteerd bezit evenveel logica als een vis op wandeltocht.
het enige wat die hoort te programmeren is een wasmachine

Candyman66

Legacy Member
Wundagore zei:
Hell yeah
Go 2TI!

bedankt voor het aanbod maar liever niet,
ik kan de code van andere mensen niet verdragen.
wat ook de reden was waarom ik maar een 11 op vb.net van wouters
haar visie van object geörienteerd bezit evenveel logica als een vis op wandeltocht.
het enige wat die hoort te programmeren is een wasmachine

Volledig mee eens :lol:
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan