1.先了解for语句是如何执行的
for循环:
语法结构:
for(初始值;循环条件;迭代部分){
循环操作 }
执行规律:
1)首先执行1次初始值代码
2)判断循环条件是否成立,如果循环条件为true,则执行{}里的循环操作代码,执行循环操作后,进行迭代,迭代完再进行循环条件判断,根据循环条件的结果决定是否继续执行循环操作。如果循环条件为false,则结束整个for循环结构,继续往下执行for循环结构之后的代码
注意:
1)初始值只执行1次
2)循环条件只能是布尔值,要么为true,要么为false
3)如果第一次判断循环条件就不满足,那么循环操作一次都不会执行
2.借助代码来了解
public static void main(String[] args) {
/*
* 在控制台输出如下图形
* *****
* *****
* *****
* *****
* *****
*/
//外层循环控制行数
for(int i =1;i<=5;i++){
//输出每一行的空格
for(int k =5-i;k>0;k--){
System.out.print(" ");
}
//内层循环控制每一行的列数,内层循环输出每一行的*
for(int j =1;j<=5;j++){
System.out.print("*");
}
//换行
System.out.println();
}
}
3.了解以后来做几个题目
在控制台打印下面的图形:
乍一看是不是觉等很难,不要怕,一步一步来分析。
public static void main(String[] args) {
// 打印六边形
//写这个的时候一定要有思路,不能乱,没有思路先找一找规律。有时候,规律出来了,思路就有了。
// 上半部图形
for (int i = 1; i <= 6; i++) { //先确定行数
for (int j = 6 - i; j > 0; j--) { //再去打印每一行开头的空格数量
System.out.print(" ");
}
for (int k = 2 * (i - 1) + 6; k > 0; k--) { //最后就是打印*
System.out.print("*");
}
System.out.println();
}
// 下半部图形
for (int i = 5; i > 0; i--) {
for (int j = 6 - i; j > 0; j--) {
System.out.print(" ");
}
for (int k = 2 * (i - 1) + 6; k > 0; k--) {
System.out.print("*");
}
System.out.println();
}
System.out.println("---------分割线-----------");
//打印菱形
// 上半部图形
for (int i = 1; i <= 9; i++) {
for (int j = 9 - i; j > 0; j--) {
System.out.print(" ");
}
System.out.print("*"); //在每一行空格结束的时候来打印*
for (int k = 2 * (i - 2); k >= 0; k--) {
System.out.print(" ");
}
if (i != 1) {//当没有这个条件的时候你会发现第一行会多出来一个*,所以我们加一个条件去筛选。
System.out.print("*");
}
System.out.println();
}
// 下半部图形
for (int i = 8; i > 0; i--) {
for (int j = 8 - i; j >= 0; j--) {
System.out.print(" ");
}
System.out.print("*");
for (int k = 2 * (i - 2); k >= 0; k--) {
System.out.print(" ");
}
if (i != 1) {
System.out.print("*");
}
System.out.println();
}
System.out.println("----------分割线----------");
for (int i = 1; i <= 8; i++) {
//左边图形
if (9 - i == 8) {//筛选出当第一行的时候来打印出7个*,不然第一行会多出一个*。
for (int j = 1; j < 9 - i; j++) {
System.out.print("*");
}
} else {
for (int j = 9 - i; j > 0; j--) {
System.out.print("*");
}
}
for (int k = 2 * i - 3; k > 0; k--) {
System.out.print(" ");
}
//右边图形
for (int j = 9 - i; j > 0; j--) {
System.out.print("*");
}
System.out.println();
}
}
来看看在控制台输出的结果: