【问题标题】:loop, iterate with unexpected result循环,以意想不到的结果迭代
【发布时间】:2014-09-13 16:48:30
【问题描述】:

我必须做一个循环,但我尝试了很多次才能得到预期的结果,但我不知道我做错了什么。

public class JavaApplication34 {
   int totalResults = 248; //
   int itemsperPage = 10;
   int i = 0;
   int j = 0;
   int count = 0;

   public void makeLoop() {
      for (i = 0; i < 10; i++) {
         System.out.println("nextPage " + i);
         this.count = i + 1;
         for (j = 0; j < 10; j++) {
            System.out.println("Filenummer " + (j + 1));
            this.count = j + 1;
            System.out.println("count " + count);
         }
      }
   }

   public static void main(String[] args) {
      JavaApplication34 myTest = new JavaApplication34();
      myTest.makeLoop();
   }        
}

我应该根据结果进入控制台

  • 第 1 页,文件编号 1,文件编号 2,文件编号 3...,文件编号 10
  • 第 2 页,文件编号 11,文件编号 12,文件编号 13...,文件编号 20
  • 第 3 页,以此类推

【问题讨论】:

  • 你实际上看到了什么结果?
  • 这条线对吗? page 2, filenummer 11, filenummer 3, filenummer...,filenummer20除了你想要page 2, filenummer 11, filenummer 12, filenummer...,filenummer20
  • 您的预期答案似乎很奇怪。

标签: java loops for-loop iteration


【解决方案1】:

根据预期的输出,您也可以更改代码

for (i = 1; i <= (totalResults/itemsperPage) + 1; i++) {
    System.out.println("nextPage " + i);
    for (; j < i* itemsperPage; j++) {
        if(j > totalResults) {
           break;
        }
        System.out.println("Filenummer " + (j + 1));
    }
}

【讨论】:

  • 但它只给了我 90 个文件,但应该是 100,
  • totalResults 是 Filenumbers 的计数,应该是,如果 totalResults 为 100,则 100 Filenumbeers
  • totalResults 将在未来动态
  • 你能告诉我怎么做吗? totalResults 我每次都得到一个其他数字,而不是固定为 10,如何处理?,请
  • 我尝试了你的新代码,如果你给 totalResults 的值=55,它会打印出 50,而不是 55,或者 148,它会打印出 140,但它适用于 10、20、30 ,等等
【解决方案2】:

我现在有以下代码,aeshang 写道:

公共类 JavaApplication34 {

int totalResults = 34;
int itemsperPage = 10;
int i = 0;
int j = 0;

public void makeLoop() {

    for (i = 1; i <= (totalResults / itemsperPage); i++) {
        System.out.println("nextPage " + i);
        for (; j < i * itemsperPage; j++) {
            if (j > totalResults) {
                break;
            }
            System.out.println("Filenummer " + (j + 1));
        }
    }

}

它给了我以下输出

  • nexpage 1,文件编号 1,文件编号 2,....,文件编号 10
  • nexpage 2,文件编号 11,文件编号 12....,文件编号 20
  • …………
  • nexpage 3,文件编号 21,文件编号 22,...文件编号 30(但它 应该是直到,34)

【讨论】:

  • hi aeshang 我希望你能找到解决这个问题的方法。
【解决方案3】:
        int totalResults = 34;
        int itemsperPage = 10;
        int i = 0;
        int j = 0;
        int loopSize = (totalResults / itemsperPage);

        public void makeLoop() {
            loopSize = (totalResults % itemsperPage > 0) ? ++loopSize : loopSize;

            for (i = 1; i <= loopSize; i++) {
                System.out.print("nextPage " + i + "...");
                for (; j < i * itemsperPage; j++) {
                    if (j > totalResults) {
                        break;
                    }
                    System.out.print(" Filenummer " + (j + 1));
                }
                System.out.println();

            }

        }

输出= nextPage 1... 文件编号 1 文件编号 2 文件编号 3 文件编号 4 文件编号 5 文件编号 6 文件编号 7 文件编号 8 文件编号 9 文件编号 10 nextPage 2... 文件编号 11 文件编号 12 文件编号 13 文件编号 14 文件编号 15 文件编号 16 文件编号 17 文件编号 18 文件编号 19 文件编号 20 nextPage 3... 文件编号 21 文件编号 22 文件编号 23 文件编号 24 文件编号 25 文件编号 26 文件编号 27 文件编号 28 文件编号 29 文件编号 30 nextPage 4... 文件编号 31 文件编号 32 文件编号 33 文件编号 34 文件编号 35

【讨论】:

  • 应该有 34 个项目,这还给 35 个?
【解决方案4】:
int totalResults = 34;
int itemsperPage = 10;
int i = 0;
int j = 1;
int loopSize = (totalResults / itemsperPage);

public void makeLoop() {
    loopSize = (totalResults % itemsperPage > 0) ? ++loopSize : loopSize;

    for (i = 1; i <= loopSize; i++) {
        System.out.print("nextPage " + i + "...");
        for (; j < i * itemsperPage; j++) {
            if (j > totalResults) {
                break;
            }
            System.out.print(" Filenummer " + (j));
        }
        System.out.println();

    }

}

输出= nextPage 1... 文件编号 1 文件编号 2 文件编号 3 文件编号 4 文件编号 5 文件编号 6 文件编号 7 文件编号 8 文件编号 9 nextPage 2... 文件编号 10 文件编号 11 文件编号 12 文件编号 13 文件编号 14 文件编号 15 文件编号 16 文件编号 17 文件编号 18 文件编号 19 nextPage 3... 文件编号 20 文件编号 21 文件编号 22 文件编号 23 文件编号 24 文件编号 25 文件编号 26 文件编号 27 文件编号 28 文件编号 29 nextPage 4... 文件编号 30 文件编号 31 文件编号 32 文件编号 33 文件编号 34

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-13
    • 2020-05-07
    • 2019-04-05
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多