Java(十二)循环

82 阅读5分钟

循环  又是一个老生常谈的问题。Java中的循环大概有:while、do……while、for等。

我们先从头来看:

一:while循环

语法结构:

while( 布尔表达式 ) { //循环内容 }

我们来测试一下:

public class one {
    /**
     * main函数
     * @param args
     */
    public static void main(String[] args)
    {
        // 调用测试while循环函数
        (new one()).whileS();
    }
 
    /**
     * while 循环
     */
    public void whileS()
    {
        // ==================================================
        // 语言多重多样,while循环万变不离其宗。先判断,后执行。
        int x = 10;
        while(x > 0)
        {
            System.out.print("value of x : " + x );
            System.out.print("\n");
            x--;
        }
    }
}

输出:

value of x : 10
value of x : 9
value of x : 8
value of x : 7
value of x : 6
value of x : 5
value of x : 4
value of x : 3
value of x : 2
value of x : 1

 

二:do-while循环

语法结构:

do {
       //代码语句
}while(布尔表达式);

 

我们来测试一下:

public class one {
    /**
     * main函数
     * @param args
     */
    public static void main(String[] args)
    {
        // 调用测试do-while循环函数
        (new one()).doWhileS();
    }
    /**
     * do-while循环
     */
    public void doWhileS()
    {
        // =============================================
        // 语言多重多样,do-while循环万变不离其宗。先执行,后判断。
        int x = 10;
        do{
            System.out.print("value of x : " + x );
            System.out.print("\n");
            x--;
        }while(x > 0);
    }
}

输出:

value of x : 10
value of x : 9
value of x : 8
value of x : 7
value of x : 6
value of x : 5
value of x : 4
value of x : 3
value of x : 2
value of x : 1

 

看到这里,我发现了一个小问题,那就是,while和do-while的区别是什么呢?简单讲:while是先判断,满足条件后在进入循环。不满足条件则不会进入。

Do-while是先执行,在判断,也就是说,无论判断条件是否满足条件,都会进入一次循环体。

这个一定要搞清楚,do-while在某些场景下有大用处。

 

三:for循环

虽然所有的循环都可以使用while、do-while来实现,但是,我一般不咋用,我用的比较多的是for循环。Java同样为我们提供了 for循环。

语法结构:

for(初始化; 布尔表达式; 更新) { //代码语句 }

我们来测试一下:

public class one {
    /**
     * main函数
     * @param args
     */
    public static void main(String[] args)
    {
        // 调用测试for循环函数
        (new one()).forS();
    }
 
    /**
     * 测试for循环
     */
    public void forS()
    {
        // ===============================================================
        // 语言多重多样,普通的for循环万变不离其宗。
        for(int x = 10; x < 20; x++)
        {
            System.out.print("value of x : " + x );
            System.out.print("\n");
        }
    }
}

输出:

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

 

四:增强版for循环

For循环相对来说还是比较麻烦,java为我们提供了另一种增强版的for循环。

语法结构:

for(声明语句 : 表达式) { //代码句子 }

声明语句: 声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式: 表达式是要访问的数组名,或者是返回值为数组的方法。

我们来测试一下:

public class one {
    /**
     * main函数
     * @param args
     */
    public static void main(String[] args)
    {
        // 调用测试for循环函数
        (new one()).forS();
    }
 
    /**
     * 测试for循环
     */
    public void forS()
    {
        // ======================================
        // 语言多种多样,java的for循环是有增强版的~
        // 测试增强版的for循环需要用到数组……嗯,好像是又超纲了,就当曾经认识过她,循环完事才是数组……
        int [] array = {1,2,3,4,5,6,7,8,9};
        for(int x:array)
        {
            System.out.print("value of x : " + x );
            System.out.print("\n");
        }
    }
}

输出:

value of x : 1
value of x : 2
value of x : 3
value of x : 4
value of x : 5
value of x : 6
value of x : 7
value of x : 8
value of x : 9

 

增强版的for循环,相对于for循环,语法相对简单了一些。嗯,大概是这个样子。

 

五:嵌套循环

循环是可以嵌套循环的,我觉得我好想再说废话,测试这个得想个好玩的东西,使用for循环嵌套输出个九九乘法表吧。

public class one {
    /**
     * main函数
     * @param args
     */
    public static void main(String[] args)
    {       
        // 调用测试99乘法表
        (new one()).nine();
    }
 
    /**
     * 99乘法表
     */
    public void nine()
    {
        for (int i = 1;i <= 9;i++)
        {
            System.out.print("\n");
            for (int k = 1;k <= i;k++)
            {
                int res = k * i;
                System.out.print( k + " * " + i + " = "+res+" | " );
            }
            System.out.print("\n");
        }
    }
}

输出:

1.png

 

六:跳出循环

跳出循环这里有两个关键字:break、continue。

我这里仍然使用for循环来进行测试。

1:break

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

我们来测试一下:

 
    /**
     * break跳出循环
     */
    public void keyBreak()
    {
        // ================================================
        // 语言多重多样,普通的for循环万变不离其宗。
        for(int x = 10; x < 20; x++)
        {
            if(x == 15)
            {
                break;
            }
            System.out.print("value of x : " + x );
            System.out.print("\n");
        }
    }

输出:

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14

 

通过输出的结果,我们可以看到,当循环到15的时候直接跳出了循环

 

2:continue

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

在 for 循环中,continue 语句使程序立即跳转到更新语句。

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

我们来测试一下:

    /**
     * break跳出循环
     */
    public void keyContinue()
    {
        // ===============================================================
        // 语言多重多样,普通的for循环万变不离其宗。
        for(int x = 10; x < 20; x++)
        {
            if(x == 15)
            {
                continue;
            }
            System.out.print("value of x : " + x );
            System.out.print("\n");
        }
    }

输出:

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 16
value of x : 17
value of x : 18
value of x : 19

 

通过输出的结果,我们可以看到,当循环到15的时候直接跳出了本次循环,继续进行下一次循环。

 

以上大概就是java循环的基本知识,有好的建议,请在下方输入你的评论。