zoukankan      html  css  js  c++  java
  • 循环语句——for语句

    一、for语句结构:
    for (初始化表达式; 循环条件表达式 ;循环后的操作表达式 )
      {
        执行语句;
      }

     循环条件表达式,必须是true或false

    示例:

    class ForDemo
    {
        public static void main(String[] args)
        {
            for (int x=0;x<3 ;x++ )
            {
                System.out.println("第"+x+"次"+"你好");
            }
    
        }
    }

    输出结果:

    第0次你好
    第1次你好
    第2次你好

    执行顺序图解:

    第1步 执行“初始化表达式”int x=0;

    第2步 是否x<3

    第3步 条件满足(真),执行打印输出语句

    第4步 x++,结果为1

    第5步 是否x<3

    第6步 条件满足(真),执行打印输出语句

    ...

    第10步 x++,结果为3

    第11步 是否x<3,为假,停止

    第一步是执行初始化表达式。第后只在循环表达式、执行语句、循环后的操作表达式三者之间循环。

    二、for语句特点:

    根据以上执行顺序,得出以下结论:

    符合条件时,初始化表达式只执行一次
    只有条件表不满足循环就停止。

    三、变量的作用域(即作用范围)

    for(){}循环,变量初始值定义在for语句内部,执行完毕后,变量释放。

    如下,最后一句无法输出,报错:

    class ForDemo
    {
        public static void main(String[] args)
        {
            for (int x=0;x<3 ;x++ )
            {
                System.out.println("第"+x+"次"+"你好");
            }
            System.out.println(x);    //报错。
        }
    }    

    while(){}循环,变量初始值定义在while语句外部,执行完毕后,变量仍存在。

    如下,最后一句输出3。因为在内存中,变量y仍存,同是值已经变为3。

    class ForDemo
    {
        public static void main(String[] args)
        {
            int y=0;
            while(y<3)
            {
                System.out.println("第"+y+"次"+"你好");
                y++;
            }
            System.out.println(y);        //输出3
        }
    }

    总结:

    for和while语句可以互换

    变量只为循环增量存在,建议用for语句。

    循环结速后,仍要使用变量进行其它运算,要用while语句。

    四、特殊示例

    1、初始化及循环后的语句,只要是一个正确的表达式,就可以(int i=0,不单单局限于这种格式)。变量的初始值可以定义在for循环外面。

    class ForDemo
    {
        public static void main(String[] args)
        {
            int x=1;
            for (System.out.println("a");x<3; System.out.println("c") )
            {
                System.out.println("d");
                x++;
            }
            System.out.println(x);    //3
        }
    }    

    输出:

    a
    d
    c
    d
    c
    3

    2、有多个表达式,用逗号“,”分隔

    class ForDemo
    {
        public static void main(String[] args)
        {
            int x=1;
            for (System.out.println("a");x<3; System.out.println("c"),x++ )
            {
                System.out.println("d");
            }
        }
    }

    输出:

    a
    d
    c
    d
    c

    3、初始化表达式和循环后的表达式,是可以不写的,

    但是,初始值定义在for语句外面,以下三段代码是执行结果是一样的,只是变量作用域不同

    for (int y=0;y<3 ;y++ )
    {
    
    }
    int y=0;
    for (;y<3 ; )
    {
      y++
    }
    int y=0;
    for (;y<3 ; y++)
    {
    }

     4、无限循环

    for (; ; ){ }
    while (true){ }
  • 相关阅读:
    Java Object类 和 String类 常见问答 6k字+总结
    又长又细,万字长文带你解读Redisson分布式锁的源码
    第三方API对接如何设计接口认证?
    免费正版 IntelliJ IDEA license 详细指南
    ClickHouse性能优化?试试物化视图
    全量同步Elasticsearch方案之Canal
    Canal高可用架构部署
    Spring官方发布新成员:Spring GraphQL
    为什么catch了异常,但事务还是回滚了?
    这几个事务案例会回滚吗?最后一个90%的人判断错了...
  • 原文地址:https://www.cnblogs.com/ibelieve618/p/6372211.html
Copyright © 2011-2022 走看看