for循环
1.介绍 当我们在代码中重复进行同一操作时,并且已知重复次数,或结束条件,我们可以使用循环结构来写,而使代码不显得过于冗余。
2.循环的四要素
1.循环初始化—指的就是循环从什么时候开始执行。
2.循环继续条件—什么情况循环继续执行/反过来说,循环何时结束。
3.循环体—就是我们需要被多次循环执行的代码块。
4.循环的周期,步长,间距–当前循环和下一次循环之间的变更
3.for循环结构****
for(1循环的初始;2循环的继续条件;4循环的步长){
3循环体;
}
4.for嵌套:
循环在for循环里在套个for循环,可以减少代码量。
for循环
- ********打印出
//当我们以*为循环体
class Test01{
public static void main(String[] args){
for(int i=1;i<=8;i++){ //一共有8个*循环8次
System.out.print("*");//每次输出一个*并不换行
}
}
-
******** ******** ******** 打印出 ********
//当我们以********为循环体
class Test01{
public static void main(String[] args){
for(int i=1;i<=4;i++){
System.out.println("********");
}
/*
/当我们以一个(*)为循环体 for嵌套循环
for(int line=1;line<=4;line++){ //一共四行
for(int i=1;i<=8;i++){
System.out.print("*");//每次打印一个*重复8次
}
System.out.println();//每输出8个*换行
***3
*/
}
for嵌套循环
/*** 3 打印出
* 1
** 2
*** 3
**** 4
***** 5
******* 6
******** 7
class Test03{
public static void main(String[] args){
for(int line=1;line<=7;line++){ //一共7行循环7次
for(int i=1;i<=line;i++){ //每行最大数位这行的行数
System.out.print("*"); //内for每循环一次输出*
}
System.out.println(); //外for每执行一次换行
}
}
}
-
i j * 1 1 ** 2 1 2 *** 3 1 2 3 **** 4 1 2 3 4 ***** 5 1 2 3 4 5 ****** 6 1 2 3 4 5 6 ***** 7 1 2 3 4 5 **** 8 1 2 3 4 *** 9 1 2 3 ** 10 1 2 * 11 1 j<=i && j<=12-i
class Test04{
public static void main(String[] args){
for(int i=1;i<=11;i++){ //代表行数11行
for(int j=1;j<=i&&j<=12-i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
-
k i j * -5 1 1 ** -4 2 1 2 *** -3 3 1 2 3 **** -2 4 1 2 3 4 ***** -1 5 1 2 3 4 5 ****** 0 6 1 2 3 4 5 6 ***** 1 7 1 2 3 4 5 **** 2 8 1 2 3 4 *** 3 9 1 2 3 ** 4 10 1 2 * 5 11 1
//k=|i-6| |k| 代表当前最大的空格数
(改进上题代码)
class Test05{
public static void main(String[] args){
for(int i=1;i<=11;i++){ //一共11行循环11次
for(int k=1;k<=Math.abs(i-6);k++){ //|k| 代表当前最大的空格数
System.out.print(" "); //每次输出一个空格
}
for(int j=1;j<=i&&j<=12-i;j++){ //来限制输出的最大数
System.out.print("*");//每次打印一个*为一个单位
}
System.out.println();
}
}
}
-
k i j * -5 1 1 * * -4 2 1 2 * * * -3 3 1 2 3 * * * * -2 4 1 2 3 4 * * * * * -1 5 1 2 3 4 5 * * * * * * 0 6 1 2 3 4 5 6 * * * * * 1 7 1 2 3 4 5 * * * * 2 8 1 2 3 4 * * * 3 9 1 2 3 * * 4 10 1 2 * 5 11 1
/ /k=|i-6| |k| 代表当前最大的空格数
(改进上题代码)
class Test06{
public static void main(String[] args){
for(int i=1;i<=11;i++){
for(int k=1;k<=Math.abs(i-6);k++){
System.out.print(" ");
}
for(int j=1;j<=i&&j<=12-i;j++){
System.out.print("* ");//每次打印出(一个*加一个空格)为一个单位打印出
}
System.out.println();
}
}
}
7

import java.util.Scanner;
class Text07{
public static void main(String[] args){ Scanner scanner=new Scanner(System.in);
System.out.print("请输入行数:");
int line=scanner.nextInt();
for(int i=1;i<=line;i++){
for(int k=1;k<=(line-i);k++){
if(line<10){
System.out.print(" ");
}else{
System.out.print(" ");
}
}
for(int x=-(i-1);x<=i-1;x++){
if(line<10){
System.out.printf("%-2d",Math.abs(x)+1);
}else{
System.out.printf("%-3d",Math.abs(x)+1);
}
}
System.out.println();
}
}
s}
8

class Text08{
public static void main(String[] args){
/* 0
0 1 0
0 1 2 1 0
0 1 2 3 2 1 0 */
for(int i=1;i<=8;i++){ //总共为8行
for(int k=1;k<=8-i;k++){ //每行空格输出减一次
System.out.print(" "); //因为随着数组位数增加所占宽度越大,最大为128,所以给每位数之间分配4个空格
}
for(int j=-(i-1);j<=i-1;j++){ //就从每行最大数为2的(i-1)次
System.out.printf("%4.0f",Math.pow(2,i-1-Math.abs(j))); // 每行的数组都是2的多少次幂,且如上分析是先加再增,所以对幂取区间差的绝对值 。 从0开始所以先减个j最开始的整体,也可也画图
}
System.out.println();
}
}
}
本文详细解析了for循环的基本结构及其在代码中的应用,包括循环的四要素:初始化、继续条件、循环体和步长。通过多个实例展示了如何利用for循环打印不同模式的字符图案,以及如何使用for嵌套循环来简化复杂任务。
3559

被折叠的 条评论
为什么被折叠?



