16 for循环语句

本文详细介绍了Java中的for循环语句,包括基本语法、执行流程、变量作用域、死循环的避免以及嵌套for循环的使用。通过实例展示了如何利用for循环打印HelloWorld、计算1-100所有奇数的和以及生成九九乘法表,帮助初学者理解并掌握for循环。

for循环语句

问题
请在控制台里面打印10次HelloWorld。
这时可能你会这么写:

System.out.println("helloworld");
System.out.println("helloworld");
System.out.println("helloworld");
System.out.println("helloworld");
System.out.println("helloworld");
System.out.println("helloworld");
System.out.println("helloworld");
System.out.println("helloworld");
System.out.println("helloworld");
System.out.println("helloworld");

好吧,如果要打印10000次呢?累不死你才怪。
这时就需要使用for循环语句来帮我们解决了。

语法

for(初始化表达式;条件表达式;循环后的操作表达式) {
    循环体;
}

执行流程

1.执行初始化语句,并且在整个循环过程里面只执行一次

2.执行判断条件语句,看其返回值是true还是false

* 如果是true,就继续执行
* 如果是false,就结束循环,整个流程结束

3.执行循环体语句

4.执行循环后的操作表达式

5.程序回到步骤2继续。

例:

//初始化i的值为0,只要i<10则循环一次执行打印语句,每循环一次,i自增1
for(int i=0;i<10;i++){
    System.out.println("HelloWorld");
}


int k;

for(k=0;k<10;k+=2){
    System.out.println("k=" + k); //0 2 4 6 8
}


for(int m=10;m>0;m--){
    System.out.println("m=" + m); //10..2 1
}

for循环中的变量

在for循环中定义的变量只能在循环内部访问和使用,循环外是无法访问和使用的。

for(int i=0;i<10;i++){
        System.out.println("Hello");
}
//报错,在循环外无法访问和使用i
System.out.println(i);

因此下面代码是可以正常执行的:

for(int i=0;i<10;i++){
    System.out.println("Hello");
}

for(int i=0;i<10;i++){
    System.out.println("World");
}

请问下面代码是否可以正常编译并运行?

    for(int i=0;i<10;i++){
        int a = 10;
        System.out.println("Hello");
    }

    System.out.println(a);

编译报错,因为变量a是在for循环内部创建的,所以在循环外部无法访问和使用。

死循环

倘若for循环里面的循环体只有一行代码,则大括号可以省略,但是不建议省略,最好写上。
如果for循环编写不当,可能会造成死循环,程序永远不会停止,在编写程序时一定要避免,下面就是一个死循环。

for(;;){
    System.out.println("Test");
}

嵌套for循环

for循环语句还可以嵌套使用

for(int i=5;i>0;i--){
    //因为该for循环是在上面for循环的内部,所以是可以访问变量i的
    for(int j=0;j<i;j++){
        System.out.print(j+" ");
    }

    //换行
    System.out.println();

}   

*练习

1.计算1-100所有的奇数求和

2.在屏幕中打印九九乘法表

答案

1.在for循环里面加上if语句来判断当前循环的数字是否为奇数

int sum = 0;

for(int i=1;i<=100;i++){

    if(i%2 != 0){
        //奇数
        //追加
        sum += i;
    }

}

System.out.println(sum);

2.九九乘法表一共要输出9行,首先写一个for循环来控制行数:

for (int i = 1; i <= 9; i++) {
        System.out.println(i);
}

接下来比如我要输出九九乘法表的第一行,即1 * 1 = 1,写一个for循环:

for(int j=1; j<=1; j++){
    System.out.print(1 + "*" + j + "=" +1*j + " ");
}

九九乘法表的第二行,即2*1=2, 2 * 2=4

for(int j=1; j<=2; j++){
        System.out.print(2 + "*" + j + "=" +2*j + " ");
}

后面依次类推,可以发现需要修改的地方都是固定的,可以将上面的for循环修改为下面:

int i = 9;

for(int j=1; j<=i; j++){
    System.out.print(i + "*" + j + "=" +i*j + " ");
}

只需要将i修改为要输出的行数就可以,而这个变量i其实可以从第一个for循环中获取,将两个循环进行嵌套:

//外层for循环控制换行,变量i是行号
for (int i = 1; i <= 9; i++) {
    //System.out.println(i);

    // 输出规律:
    // 第1行,输出1个
    // 第2行,输出2个
    // 第3行,输出3个
    // ...
    // 第9行,输出9个
    // 第i行,输出i个

    for (int j = 1; j <= i; j++) {
        // 这里不要换行
        System.out.print(i + "*" + j + "=" + i * j + " ");
    }

    // 注意:上面的for循环结束之后表示一行输出结束了,换行
    System.out.println();

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值