Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    216

    [Java] contatore in un while

    Perché in questo ciclo il valore di r al primo print è 1 e non 0? r++ lo faccio dopo il for :master:
    Codice PHP:
            int r=0;
             while (
    scan.hasNextLine())
             {
                 
    String s scan.nextLine();             
                            for (
    int i 0s.length(); i++)
                     
    //board[r][i] = s.substring(i, i+1);
                            
    System.out.println(r+" e " +i);
                 
    r++;
                  } 

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] contatore in un while

    Originariamente inviato da raff5184
    Perché in questo ciclo il valore di r al primo print è 1 e non 0? r++ lo faccio dopo il for :master:
    Non vedo nulla di strano ... lo Scanner legge da dove?? Non è che per caso c'è una riga vuota all'inizio?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    216
    lo scanner legge da un file txt:

    6 6
    ** ***
    ** **
    * ***
    * ** *
    * ***
    *** **


    questo è il metodo completo
    Codice PHP:
            FileReader file = new FileReader("maze.txt");
             
    Scanner scan = new Scanner(file);
             
    rows scan.nextInt();
             
    cols scan.nextInt();
            
    board = new String[rows-1][cols-1];
             
    int r=0;
             while (
    scan.hasNextLine())
             {             
                           
    String s scan.nextLine();
                           for (
    int i 0s.length(); 
                                  
    System.out.println(r+" e " +i);
                 
    r++;         
                     } 

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da raff5184
    codice:
    		FileReader file = new FileReader("maze.txt");
     		Scanner scan = new Scanner(file);
     		rows = scan.nextInt();
     		cols = scan.nextInt();
    Infatti ... come pensavo ... legge una "riga vuota" all'inizio. Non la vedi .... perché è un po' "nascosta". Tu leggi 2 int ma il newline che c'è dopo il secondo 6 NON viene scartato. Quindi nextLine trova appunto una "riga vuota"!!!

    Originariamente inviato da raff5184
    codice:
    board = new String[rows-1][cols-1];
    Perché -1??? Se devi poi leggere 6 righe allora la dimensione dell'array deve essere 6, non 5.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    216
    Originariamente inviato da andbin
    Infatti ... come pensavo ... legge una "riga vuota" all'inizio. Non la vedi .... perché è un po' "nascosta". Tu leggi 2 int ma il newline che c'è dopo il secondo 6 NON viene scartato. Quindi nextLine trova appunto una "riga vuota"!!!
    quindi devo aggiungere uno scan.next()?


    Perché -1??? Se devi poi leggere 6 righe allora la dimensione dell'array deve essere 6, non 5.
    avevo tolto 1 perché avevo un errore dopo ed ho dimenticato di reimpostare i valori corretti

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da raff5184
    quindi devo aggiungere uno scan.next()?
    No, perché leggerebbe il prossimo token che nel tuo caso è sulla riga successiva (**).

    Dopo il secondo nextInt() metti un nextLine()
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.