user1659644
user1659644

Reputation: 2983

Java Code : control variable in for loop

for (int page = 0; page < pageNum;) {
    copy.addPage(copy.getImportedPage(reader, ++page));
}

here ++page is control variable getting modified , how to achieve in better way ?

Upvotes: 0

Views: 1208

Answers (4)

Ahmad Al-Kurdi
Ahmad Al-Kurdi

Reputation: 2315

You can do it in different ways

1

        for (int page = 1; page <= pageNum; ++page) {
            copy.addPage(copy.getImportedPage(reader, page));
        }

2

        for (int page = 1; page <= pageNum; page++) {
            copy.addPage(copy.getImportedPage(reader, page));
        }

3

        int page = 1;
        while (page <= pageNum) {
            copy.addPage(copy.getImportedPage(reader, page));
            page++;
        }

4

        int page = 0;
        while (page < pageNum) {
            page++;
            copy.addPage(copy.getImportedPage(reader, page));
        }

5

        int page = 0;
        while (page < pageNum) {
            copy.addPage(copy.getImportedPage(reader, ++page));
        }

Upvotes: 0

Berť&#225;k
Berť&#225;k

Reputation: 7357

Do you mean this?

for (int page = 0; page < pageNum; page++) {
    copy.addPage(copy.getImportedPage(reader, page+1));
}

Upvotes: 3

Kumar Abhinav
Kumar Abhinav

Reputation: 6675

Try using the while when you do not have the control over increment operation

int page=0;
while(page<pageNum){
    copy.addPage(copy.getImportedPage(reader, ++page));
}

Upvotes: 4

Piyush Mittal
Piyush Mittal

Reputation: 1890

copy.addPage(copy.getImportedPage(reader, ++page));

using pre-increment operator the value will be updated first

i.e it will be called with the incremented value of page which is 1

copy.addPage(copy.getImportedPage(reader, page++));

using post-increment operator the value will be updated after

i.e it will be called with the non incremented value of page which is 0

use the pre or post increment operator according to your requirement.

Upvotes: 1

Related Questions