for循环的使用:
for循环的基本结构:
for(初始化语句; 条件判断语句;条件控制语句){
java代码;
}
例如:输出1到10
public class Test10 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
}
}
这里只需要在循环中打印输出。
for循环嵌套for循环结构:
例如这样的:
for(初始化语句; 条件判断语句;条件控制语句){
for(初始化语句; 条件判断语句;条件控制语句){
java代码;
}
java代码;
}
例如下题:
对于这道题,首先需要把题中的图形分成两个由“*”组成上层和下层的三角形,上层的三角形由空格和“*”符号组成,下层也是由空格和“*”符号组成。第一层打印三个空格和一个“*”并随着层数每增加一,空格数就减少一,“*”符号就增加2倍加一。而倒三角则和正三角相似
public class Test {
public static void main(String[] args) {
//打印菱形需要吧菱形分成两个三角形
//使用俩个循环分别打印一个正三角形和倒三角
//正三角中的空格和*都与层数有关
//外层控制层数,内层控制*和空格的数量
for (int i = 0; i < 4; i++) {
//层数和*的数量有关
//空格数量比层数少1
for (int j = 3; j > i ; j--) {
System.out.print(" ");
}
//*的数量是层数2倍加1个,且自上往下增加,所以是j<2*i+1
for (int j = 0; j < i*2+1; j++) {
System.out.print("*");
}
System.out.println();//换行
}
//倒三角,与正三角相似
for (int i = 0; i < 3; i++) {
for (int j = 0; j <= i ; j++) {
System.out.print(" ");
}
//*的数量是层数2倍加1个,且从上往下减少,所以是j>=2*i+1
for (int j = 5; j >= i*2+1; j--) {
System.out.print("*");
}
System.out.println();//换行
}
}
}
for循环嵌套for循环再嵌套if语句结构:
例如这样的:
for(初始化语句; 条件判断语句;条件控制语句){
for(初始化语句; 条件判断语句;条件控制语句){
java代码;
if(){
java代码
}
}
java代码;
}
上题再增加一点难度就例如:
前面的分析和上题类似,只不过再打印“*”符号的时候需要增加一个判断,判断这个位置是否是打印“*”符号还是空格。
public class Test18 {
public static void main(String[] args) {
//此题与上一题类似
//只需要在上题中打印*的循环中加上判定使上层的第一个和最后一个为*
//
for (int i = 0; i < 4; i++) {
//层数和*的数量有关
//空格数量比层数少1
for (int j = 3; j > i ; j--) {
System.out.print(" ");
}
//*的数量是层数2倍加1个,所以是j<2*i+1
for (int j = 0; j <= i*2+1; j++) {
if (j == 0 || j == 2*i) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();//换行
}
//倒三角,与正三角相似,不过要反过来
for (int i = 0; i < 3; i++) {
for (int j = 0; j <= i ; j++) {
System.out.print(" ");
}
//*的数量是层数2倍加1个,所以是j>=2*i+1
for (int j = 5; j >= i*2+1; j--) {
//因为每次换行都代表这个for循环重新从头执行
//所以当j为5是表示第一次循环,j为2*i+1为最后一次
//所以当j==5是第一个位置,j==2*i+1是最后一个位置
if (j == 5 || j == 2*i+1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();//换行
}
}
}
语句的嵌套在编程里面非常的常见,越是复杂的需求就越可能需要使用语句的嵌套。就例如打印菱形,首先把菱形分成两个三角形,在把三角形分成空格和“*”符号两个部分,这两个符号就可以用两个for循环分别实现,这就是内层循环,内层循环结束都需要换行,之后执行外层循环,而外层循环每执行一次内层的循环都会重新执行。如果是打印空心菱形就需要在内层循环中判断某个位置是否需要打印“*”内层的循环每循环一次进行一次判断。