Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Interrompere la lettura dei valori in un ciclo infinito?

    Ciao ragazzi,

    ho un problema con il mio codice e in particolare con la lettura di alcuni valori in un ciclo infinito.
    Vorrei dare la possibilità all'utente di interrompere la lettura di tali valori indipendentemente dalla variabile che sta leggendo, avevo pensato ad un ciclo infinito così strutturato nel metodo.

    codice:
    public void addComponenti()
    {
    
    boolean c = true;
    		
    		do {
    		
    			
    		System.out.print("Inserisci nome: ");
    		
    		nome = tastiera.readLine();
    		
    		System.out.print("Inserisci città: ");
    		    
    		citta = tastiera.readLine();
    		
    	        c = citta.equals("k");
    		
    		System.out.print("Inserisci numero: ");
    		
    		num = tastiera.read();
    		
    		if (!c)
    		    {
    			fOUT.writeObject(nome);
    		        fOUT.writeObject(citta);
    		        fOUT.writeObject(provincia);
    		        fOUT.writeObject(numAbitanti);
    		    }
    		
    		
    		}while(!c);
    		
    	}
    	
    }
    posso verificare soltanto il valore di c che corrisponde al valore di citta, ma non quello delle altre variabili. In parole povere il programma termina la lettura soltanto se al momento della richiesta della città, l'utente inserisce k; ma non termina se inserisce k negli altri valori perché io ciclo soltanto con quella variabile.

    Come posso fare per fare un controllo dinamico? Ho già provato con le condizioni ma non va.
    ?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da wormd Visualizza il messaggio
    Vorrei dare la possibilità all'utente di interrompere la lettura di tali valori indipendentemente dalla variabile che sta leggendo
    La cosa più semplice: while (true) { ..... } e poi dentro, per ciascun input: se valore X (che termina) allora break;
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    La cosa più semplice: while (true) { ..... } e poi dentro, per ciascun input: se valore X (che termina) allora break;
    Ho provato come hai detto ma non va.

    codice:
    public void addComponenti() throws IOException
    	{
    		
    		while (true)
    		{
    			
    			System.out.print("Inserisci nome: ");
    		
    			nome = tastiera.readLine();
    			
    		    if(nome == "*")
    		    {
    		    	
    		    	break;
    		    	
    		    }
    		    
    		    else 
    		    {
    		    	
    		    	System.out.print("Inserisci città: ");
    			    
    				citta = tastiera.readLine();
    				
    				if(citta == "*")
    				{
    					
    					break;
    					
    				}
    				
    				else
    				{
    					
    						System.out.print("Inserisci numero: ");
    						
    						num = tastiera.read();
    						
    						String k = String.valueOf(num);
    						
    					    if(k == "*")
    					    {
    					    	break;
    					    }
    					    
    						
    					}
    				}
    		    	
    		    }
    		    
    		}
    In particolar modo inizialmente funge poi quando ritorna nella seconda lettura esce tutto attaccato:

    (così come da console ti allego):

    Inserisci nome: Inserisci città:

    Il ché è abbastanza strano.
    ?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da wormd Visualizza il messaggio
    Ho provato come hai detto ma non va.
    Il contenuto delle stringhe (degli oggetti, in generale) si compara con il metodo equals ... non con == (che significa "identità").
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Il contenuto delle stringhe (degli oggetti, in generale) si compara con il metodo equals ... non con == (che significa "identità").
    Giusto me ne ero dimenticato.
    Ho solo un ultimo problema, ora quando leggo diciamo la seconda tornata di valori mi esce come da console:

    Inserisci nome: Inserisci città:

    Inoltre il numero che legge non corrisponde a quello che inserisco.
    ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.