|
关于Java入门123第87页“循环嵌套”代码的问题。
尊敬的版主及版内各位同好,你们好~!
我是一个JAVA新手,在学习《JAVA入门123》这本书时,第87页的一个例子引起了我的疑问,主要表现如下:
在这一章里,主要是讲转向语句及循环语句的,我记得以前看过的其他编程呢,循环语句中的前加加与后加加或前减减与后减减的运行次数是不一样的,但我在这一章里没有看到有方面的区别的论述,然后,在运行第87页最下面一段程序时,我有些疑惑,所以,就自己练习了这个程序,为了直观,我对书上的程序做了修改,代码如下:
public class NestingLoop {
public static void main(String[] args) {
int biggerThan = 10051005;
int n = 0;
int squareSum = 0;
while (squareSum <= biggerThan) {
n++;
squareSum = 0;
for (int i = 0;i <= n;i++) {
int squareValue = i + i;
squareSum = squareSum + squareValue;
System.out.println(n +"\t"+squareSum);
}
}
System.out.println("平方和大于"+biggerThan+"的最小整数值为:"+n);
}
}
运行结果是3170,这与书上的结果不同,为了验证运算结果是否正确,我又另写了一段程序(有点粗糙,汗~!),代码如下:
public class NweNestingLoop {
public static void main(String[] args) {
int n = 1;
for ( n=0;n<=3170;++n){
int squareSum = 0;
int squareValu = 0;
squareValu = n*n;
squareSum =squareSum + squareValu;
System.out.println(n +"\t"+squareSum);
}
}
}
运行结果是,从0到3170的平方和是10048900,小于10051005,也就是说,前一例正确的答案应当是3171。
我不知道是我的程序有问题,或者是正确的数就应当是3171,所以,特意上这个网站来注册了请教各位,请各位不吝以教~!
谢谢各位先~! |
|