Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

While loop not incrementing java

i’m just starting to learn about java. My while loop does not seem to increment. Here’s the snippet of my while loop inside a try and catch:

File file = new File("Reservation.txt");
Scanner sc = new Scanner(file);

    sc.useDelimiter(",");
try {
    while (sc.hasNext()) {
        i = 0;

        newRes[i] = readRec;

        fuN2 = sc.next();
        newRes[i].fullName = fuN2;
        readRec.setFirstName(fuN2);
        System.out.println("\n" + newRes[i].fullName);

        cn2 = sc.next();
        newRes[i].contact = cn2;
        readRec.setContact(cn2);
        System.out.println(newRes[i].contact);

        dt2 = sc.next();
        newRes[i].date = dt2;
        readRec.setDate(dt2);
        System.out.println(newRes[i].date);

        pa2 = sc.nextInt();
        newRes[i].pax = pa2;
        readRec.setPax(pa2);
        System.out.println(newRes[i].pax);

        bt2 = sc.next();
        newRes[i].bday = bt2;
        readRec.setBirthday(bt2);
        System.out.println(newRes[i].bday);

        ch2 = sc.nextInt();
        newRes[i].child = ch2;
        readRec.setChild(ch2);
        System.out.println(newRes[i].child);

        se2 = sc.nextInt();
        newRes[i].senior = se2;
        readRec.setSenior(se2);
        System.out.println(newRes[i].senior);

        pr2 = sc.nextInt();
        newRes[i].j = pr2;
        readRec.setPrice(pr2);
        System.out.println(newRes[i].j);

        dpr2 = sc.nextInt();
        newRes[i].k = dpr2;
        readRec.setDisPrice(dpr2);
        System.out.println(newRes[i].k);
        sc.next();
        sc.nextLine();
        i++;
    }

} catch (NoSuchElementException e)
{
    sc.close();
    System.out.println("===============================");

}

Whenever I try to print out the variable ‘i’, it always prints out 0, but the it always reads the file correctly and in order.

UPDATE: i removed the i declaration from the while loop, the answer should be below.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

The first thing you do inside the loop is to set i to 0 …

So i is incremented at the end of the loop, but that is reverted at the next cycle.

But when printing i, you should get 1 always, not 0, when you print after the loop’s execution.

Try this:

var i = 0;
File file = new File( "Reservation.txt" );
Scanner sc = new Scanner( file );

sc.useDelimiter(",");
try 
{
  while (sc.hasNext()) 
  {
    // i = 0; Get rid of this line!!!

    newRes [i] = readRec;

    fuN2 = sc.next();
    newRes [i].fullName = fuN2;

    …

    dpr2 = sc.nextInt();
    newRes [i].k = dpr2;
    readRec.setDisPrice( dpr2 );
    System.out.println( newRes [i].k );
    sc.next();
    sc.nextLine();
    ++i;
  }
} 
catch( NoSuchElementException e )
{
  sc.close();
  System.out.println("===============================");
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading