如题, 下面是小弟做的个控制台分页小程序但是总感觉哪里不对,望高手测试或者帮小弟优化下.
 谢谢 o(∩_∩)o...
import java.util.Scanner;
public class TestFenye { /**
 * @param args
 */
private static int a = 0; public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
TestFenye tf = new TestFenye();
while (true) {
String jj = sc.next();
if (jj.equalsIgnoreCase("n")) { tf.print(a);
a++; } else if (jj.equalsIgnoreCase("p")) {
a--;
tf.print(a);
} else if (sc.equals("0")) {
System.exit(0);
} else {
System.out.print("输入N转到下一页/输入P转到上一页");
}
}
}
public void print(int ii) {
int iii = ii;
int[] arr = new int[6];
for (int i = 0; i < 6; i = i + 1) {
arr[i] = i;
}

int count = arr.length; // 记录总的条数
int countpage;// 记录页面总数
int pagesize = 5;// 每个页面显示数量
if (count <= pagesize) {
System.out.println("这是最首页了~");
for (int j = 0; j < count; j++) {
System.out.println(arr[j]);
}
System.out.println("这是第 "+1+" 页");  
} else if (count > (iii + 1) * pagesize) {
if (iii < 0) {
System.out.println("这是最首页了~");
for (int j = 0; j < pagesize; j++) {
System.out.println(arr[j]);
}
a = 1;
if(iii==-1){
iii=1;
}
 System.out.println("这是第 "+iii+" 页");
} else {
for (int j = iii * 5; j < (iii + 1) * 5; j++) {
System.out.println(arr[j]);
}
 System.out.println("这是第 "+(iii+1)+" 页");
}
} else {
System.out.println("这是末页了");
for (int j = count - (count%5); j < count; j++) {
System.out.println(arr[j]);
}
 System.out.println("这是第 "+(iii+1)+" 页");
a = count / pagesize - 1;
} }
}

解决方案 »

  1.   

    帮你测试了...运行没有问题.
    建议把if逻辑改为case结构,这样结构明了些~!
      

  2.   

    import java.util.Scanner;public class TestFenye { /**
     * @param args
     */
    private static int a = 0; public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    TestFenye tf = new TestFenye();
    while (true) {
    String jj = sc.next();
    if (jj.equalsIgnoreCase("n")) { tf.print(a);
    a++; } else if (jj.equalsIgnoreCase("p")) {
    a--;
    tf.print(a);
    } else if (sc.equals("0")) {
    System.exit(0);
    } else {
    System.out.print("输入N转到下一页/输入P转到上一页");
    }
    }
    } public void print(int ii) {
    int iii = ii;
    int[] arr = new int[6];
    for (int i = 0; i < 6; i = i + 1) {
    arr[i] = i;
    } int count = arr.length; // 记录总的条数
    int countpage;// 记录页面总数
    int pagesize = 5;// 每个页面显示数量
    if (count <= pagesize) {
    System.out.println("这是最首页了~");
    for (int j = 0; j < count; j++) {
    System.out.println(arr[j]);
    }
    System.out.println("这是第 " + 1 + " 页");
    } else if (count > (iii + 1) * pagesize) {
    if (iii < 0) {
    System.out.println("这是最首页了~");
    for (int j = 0; j < pagesize; j++) {
    System.out.println(arr[j]);
    }
    a = 1;
    if (iii == -1) {
    iii = 1;
    }
    System.out.println("这是第 " + iii + " 页");
    } else {
    for (int j = iii * 5; j < (iii + 1) * 5; j++) {
    System.out.println(arr[j]);
    }
    System.out.println("这是第 " + (iii + 1) + " 页");
    }
    } else {
    System.out.println("这是末页了");
    for (int j = count - (count % 5); j < count; j++) {
    System.out.println(arr[j]);
    }
    System.out.println("这是第 " + (iii + 1) + " 页");
    a = count / pagesize - 1;
    } }
    }
      

  3.   


      嵌套的IF 改 case结构 由点蒙哦``