日期:2014-05-20  浏览次数:20887 次

java中我一直掌握不好的两个问题,数组和for循环,请高手赐教
小女子学习java遇到难题了,基础知识学到手,可是应用起来太不灵活。尤其是数组,拿到问题往往想不起来用数组去解决。求各位前辈指点一二。

------解决方案--------------------
多写代码。
编程这东西刚开始一定要多写,切忌光看不练
------解决方案--------------------
一。for 很简单,以下我上课时做的课件的内容,也许对你有帮助。
for ( initialization_expression; loop_condition; increment_expression ) {
// statements
} 

for循环语句的控制出现在关键字for之后的圆括号中,它包括用分号隔开的三个部分。
第一部分是initialization_expression(初始化表达式),在循环开始执行之前,它对用于保存循环迭代次数的计数器进行初始化,如,int i = 1(可以用整型、浮点型变量)。
第二部分是只要指定的循环表达式loop_condition(循环条件表达式)的运算结果是true时,循环便可以继续执行。在每一次循环迭代的开始处均检查这个表达式,当它为false时,程序将转至该循环结构之后的语句处继续执行。
第三部分是increment_expression(增量表达式),通常用于增加循环计数器的值。在每一次循环迭代的末尾执行此项工作。该部分可能是i++,它将循环计数器加1,当然也可以增加的步长不是1,如果增加的步长为2,则可以与成:
i+=2;或者也可以是更复杂的步长值,比如像i=2*i+1一样。 
for循环的拓展
(1),for循环语句的第一部分initialization_expression (初始化表达式),可以声明和初始化多个变量,并且可以在for语句中的各个部分来使用这些变量。
例:
public class multiply {
public static void main(String args[]) {
long result = 0;
int limit = 5;
for (int i = 1, j = limit ; i <= limit; i++) {
result = i * j;
j--;
System.out.println(i + "*" + j + "=" + result );
}
}
}

(2),for循环语句的第二部loop_condition(循环条件表达式),这里可以是多个逻辑表达式的组合,只要最后的运算结果是true时,循环便可以继续执行,false时,循环将停止。
例:
public class multiply {
public static void main(String args[]) {
long result = 0;
int limit = 5;
for (int i = 1, j = limit; i <= limit && j > 2; i++) {
result = i * j;
j--;
System.out.println(i + "*" + j + "=" + result );
}
}
}

(3),第三部分是increment_expression(增量表达式),这里并不只是增量表达式,可以有任何表达式,并且可以与循环的控制无关。
例:
public class multiply {
public static void main(String args[]) {
long result = 0;
int limit = 5;
for (int i = 1, j = limit; i <= limit; i++, j--) {
result = i * j;
System.out.println(i + "*" + j + "=" + result );
}
}
}

(4), 用浮点数值计数。
例:
public class Area {
public static void main(String args[]) {
for (double radius = 1.0; radius <= 2.0; radius = radius + 0.2) {
System.out.println("radius=" + radius + " Area=" + Math.PI * radius * radius);
}
}
}

(5), for语句中的三个表达式可以去掉任意思的个数,但格式不能变。
for (int i = 1; i <= limit; i++) 
?int i =1; 
for (; i <= limit; i++) 
? for ( ; ; ) // 当条件表达式部分不写时,将是一个死循环。
int i =1; 
for ( ; i < 10; ) 

嵌套循环
我们可以将任何一种循环嵌入到另一种循环中,并且可以进行任意多重的嵌套。
这回将刚开始提到的阶乘的计算重新进行程序设计。

public class Factorial {
public static void main(String args[]) {
long factorial = 1;
long limit = 20;
for (int i = 1; i <= limit; i++) {
factorial = 1; // Initialize factorial
for (int factor = 2; factor <= i; factor++) {
factorial = factorial * factor;
}
System.out.println(i + " factorial is " + factorial);
}
}
}
continue语句
当我们在程序设计中,当满足某些条件时,循环体内的某些程序块不执行而进入下一轮循环时,就可以用continue与if语句加以控制。

public class Factorial {
public static void main(String args[]) {
long factorial = 1;
long limit = 20;
for (int i = 1; i <= limit; i++) {
if(i % 3 == 0) {
System.out.println("Does not calculate "+ i +" factorials." );
continue;
}
factorial = 1; // Initialize factorial
for (int factor = 2; factor <= i; factor++) {
factorial = factorial * factor;
}
System.out.println(i + " factorial is " + factorial);
}
}
}

break语句

当我们在程序设计中,当满足某些条件时,退出循环时,就可以用break与if语句加以控制。
public class Factorial {
public static void main(String args[]) {