Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente bannato
    Registrato dal
    Dec 2000
    Messaggi
    147

    [Java] come funziona l'istruzione null

    ho capito che se leggo i dati da un file con un ciclo dove la condizione verifica con null allora ci si ferma quando non ci sono + dati nel file ma come funziona con le stringhe?? ossia come faccio a fermarmi dopo aver letto alcune stringhe da tastiera??
    [code]
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Inserisci");
    String leggi;
    leggi = br.readLine();
    while (leggi != null){
    System.out.println(leggi);
    System.out.println("Inserisci");
    leggi = br.readLine();
    }
    [code]
    se utilizzo null quando mi sono rotto di inseire delle parola a caso se faccio soltanto invio non dovrebbe smettere??
    come faccio a farlo smettere??

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Semplicemente cambia il confronto: null non è una funzione, è una costante che indica che un oggetto non è istanziato. Se intendi fermarti quando l'utente preme INVIO puoi semplicemente effettuare il confronto con la stringa vuota (che è diversa da una stringa nulla!!):
    codice:
    while (!leggi.equals("")) {
       ...
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente bannato
    Registrato dal
    Dec 2000
    Messaggi
    147
    tankyou

  4. #4
    per quanto riguarda le stringhe, NULL identifica una stringa nulla ovvero una stringa vuota ""
    www.matteosteri.it

  5. #5
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    non sono sicuro che NULL identifichi una stringa "".

    Come ha detto LeleFT, non è inizializzato...(in java si da per scontato, ma si intede un "puntatore" non inizializato, è qui il problema)

    codice:
    String stringa;
    //si avverte il compilatore che esisterà una variabile di nome stringa
    //di tipo String, ma non esiste nessun spazio di memoria ancora 
    //associato a "stringa",
    //quindi è nullo.
    
    stringa = "";
    //stringa sarà un "puntatore"(impliciti in java) ad una zona di 
    //memoria che conterrà il valore "", identificato col nome stringa
    Quindi null praticamente dice
    "per ora non esiste, ma ti avverto che esisterà"
    e la memoria verrà allocata alla prima inizializzazione.

    Un tipico errore causato dall'utilizzo errato di null è il NullPointerException, ovvero puntatore nullo, puntatore a memoria non allocata, non inizializzata appunto.

    codice:
    String str = null;
    str.equals("");
    in questo caso c'è un NullPointerException, dato che si vuole guardare se il valore di str è "", ma il valore è nullo, appunto, il valore non esiste ancora, bisogna appena allocare la memoria sufficiente a contenere un eventuale valore futuro .

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

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.