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

    [JAVA]Primo programma e subito i dubbi

    Ho fatto questo programmino idiota....metti 1 e ti stampa HELLO WORLD e metti 2 e ti stampa nome e cognome

    codice:
    import java.io.IOException;
    
    
    public class Prova {
    	
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		String helloworld = "Hello World";
    		String nome = "nome cognome";
    		byte b[] = new byte[3];
    		
    		while (true){
    			
    			System.out.print("Fai la tua scelta:");
    			
    			try {
    				System.in.read(b);
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		
    			
    			if (b[0]== '1')
    				System.out.println(helloworld);
    			else if(b[0] == '2')
    				System.out.println(nome);
    			else break;
    		
    		}
    }
    }
    Il dubbio è...se invece di 3 byte lo inizializzo a 2 oppure a 1 riesco a fare solo una stampa poi esce di nuovo FAI LA TUA SCELTA e si blocca.....non riesco a venire a capo di sta cosa :master:
    Cancellato stare lucido dal mio vocabolario -Speaker Cenzou-

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Stai usando il metodo int read(byte[] b) che non è certamente il più appropriato (e ha poco senso) se vuoi gestire un input dall'utente.

    codice:
    import java.util.Scanner;
    ...
    
    Scanner sc = new Scanner (System.in);
    int scelta = sc.nextInt ();
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Mi avevano già parlato di questa scanner molto + funzionale della System.in.read ma come primo esercizio all'uni il prof. ci ha dato da fare questa cosa...ora lo rivedo martedi ma tengo sto dubbio atroce

    Rimanendo in tema di programmazione didattica...come mai se metto inferiore a 3 non va?

    Può entrarci un discorso tipo un input devono essere 3 byte boho una cosa del genere
    Cancellato stare lucido dal mio vocabolario -Speaker Cenzou-

  4. #4
    Dell'input fanno parte anche i caratteri \r\n (caratteri n. 13 e 10) che corrispondono su Windows alla pressione del tasto invio.
    Per questo devi mettere un array di lunghezza 3.

    Per capire meglio quello che succede, ti consiglio di farti stampare i codici dei caratteri immessi; aggiungi le seguenti linee dopo la read():

    codice:
    for ( int i = 0; i < b.length; i++ )
    {
      System.out.println( b[ i ] );
    }
    Ciao,

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 © 2026 vBulletin Solutions, Inc. All rights reserved.