• 循环语句


    为什么要使用循环?循环的要素?

    如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令。当然你可能已经注意到了,刚才的描述中其实不仅仅有需要重复的动作,还有我们上一个章节讲到的分支结构。再举一个简单的例子,比如在我们的程序中要实现每隔1秒中在屏幕上打印一个"hello, world"这样的字符串并持续一个小时,我们肯定不能够将System.out.println(“hello, world”)这句代码写上3600遍,如果真的需要这样做那么我们的工作就太无聊了。因此,我们需要循环结构,使用循环结构我们就可以轻松的控制某件事或者某些事重复、重复、再重复的发生。在Java中构造循环结构有三种基本做法,一种是while循环,一种是do-while循环,一种是for循环。

    Java中的程序结构顺序,分支,循环

    //需求:小游戏,猜数字,用户输入一个数字,判断是否正确

    sysout(“请输入1-10的数字:”)

    Scanner input = .... //获取用户输入

    //产生答案

    int result = (int)(Math.random()*10+1);

    (循环变量(执行多少次)){

    int num = input.nextInt();

    if(num == result){

         sysout(“成功”);

    }else{

         sysout(“失败”);

    }

    }

        

    当程序出现大量重复相同的操作时

         循环的要素:

         1.重复做的事情-->大括号{ }

         2.重复的次数-->循环变量

    whlie()循环(其次)

     循环变量赋初值   

    while(表达式[循环条件]){

            执行语句;[重复操作的事情]

            循环变量的自增或自减;

            [使循环趋于结束]

        }

        表达式:循环条件,每次执行循环之前都会判断表达式的真假

            一般是由关系运算符组成偶尔可见关系和逻辑运算符组成

            最常见的 >  >=  <  <=  其次 !=    表达式 && 表达式

         执行过程:当循环执行到while时,首先会判断while后面( )里的表达式值的真假,

         如果为真,那么就执行{ }里执行语句,然后循环变量自增或自减,

         继续判断表达式的真假,直到表达式值为假,那么while循环结束

    do-while循环(最后)

         do{

             执行语句;[重复操作的事情]

             循环变量的自增或自减

            }while(表达式[循环条件]);

        

         执行过程:当程序执行到do-while时,首先会执行do后面{ }里的执行语句,

         然后循环变量自增或自减,接着再去判断while后面( )里表达式的值,

         如果值为真,那么就继续执行do,如果值为假,那么就结束循环   

    do-while和while区别

    1. while循环是先判断表达式(循环条件),然后在执行,若表达式不成立while循环就不会执行
    2. do-while先执行执行语句,然后在判断表达式(循环条件),若条件不成,也会执行一次

    //打印 1-10

                       //循环变量赋初值

                       int  i = 1;

                       do{

                                //重复操作的事情

                                System.out.println(i);

                                i++;

                         }while(i<1);

         

    System.out.println("----------------------------------------华丽的分割线----------------------------------");

                        

                         int j = 1;

              while(j<1){

                           System.out.println(j);

                           j++;

              }

    ps:某些时候,需要程序需要一直运行,某些系统,循环就不能停止,只要表达式值始终未真(true)

    死循环写法:while(true){}

    for()循环(必须掌握熟练应用)

         for(循环变量赋初值;循环条件;循环变量的自增或自减){

            执行语句;[重复操作的事情]

         }

         执行过程:当程序执行到for首先会执行循环变量赋初值,然后执行循环条件,

         判断循环条件的真假,然后为真,那么就执行{ }里的执行语句,

         并计算循环变量自增或自减,然后继续判断循环条件,直到为假,for循环结束  

    for循环的6种写法

    “看代码”

    循环的嵌套(for的多重循环)

    ps:不是单纯指for循环,只是以for循环为例,循环和循环之间是可以互相嵌套

    当单层循环无法满足需求的时候,需要在循环的基础上在加一层,这样的方式就是循环嵌套

    例子:

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

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

    }

    }

    for循环的嵌套,将一层循环看做一本书的第一页,第二层循环相当于数中所写的每一行内容,只有看完每一行内容之后,才可以进行翻页操作

    外层循环执行一次,内层循环执行多次 --> 图形

    案例:

    1          2     3     4     5

    2          4     6     8     10

    3          6     9     12  15

    4          8     12  16  20

    public class ForDemo4 {

          public static void main(String[] args) {

               //图形

            for(int j = 1;j<=4;j++){

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

              //println-->打印出来会有换行

                 //print--->不带换行

                 // --> 制表符 --> tab

                 System.out.print(i*j+" ");

               }

               System.out.println();

          }

     }

    }

    break

    循环的停止时当循环条件不成立的时候,循环在停止.

    在某些时候,不需要等到循环条件不成立,就让循环条件停止,就需要使用break关键字.

    扩展:break在循环嵌套的情况下只能,停止当前循环

    标签:在层循环的前提现,可以使用标签的形式来停止循环

    循环前添加一个名字即可

    continue

    continue关键字和break关键字很相似,但break关键是是将循环完全停止,而continue关键字是停止当前循环,开始下一次循环.

    (跳过本次循环,开始下次循环)

    return

    结束一个方法,return关键字不是为循环准备,而是使用在方法中的

    为什么使用return关键字可以停止循环?

    因为循环是写在方法体中,方法不存在了循环自然就会结束.

    案例:

    for,while和do-while三种循环的异同点。

    同: 都是循环

    不同点:书写方式不一样,其中特别的是do-while,先执行,然后在判断

    三种循环之间是可以互相嵌套,并且互相修改的对方的书写样式的

    什么是方法?

    为什么要有方法?

    方法的格式

    方法的内存图和方法调用过程(传址和传值)

  • 相关阅读:
    linux删除目录的命令
    Windows XP下git通过代理下载android代码
    白话算法希尔排序
    操作系统——存储技术
    如何理解Linus Torvalds的“什么才是优秀程序员”的话
    程序员自我修养读书随笔——目标文件
    面试求职:大数据处理总结
    持久化与Session定义
    java中byte转换int时为何与0xff进行与运算
    OSI七层相关协议
  • 原文地址:https://www.cnblogs.com/lijun199309/p/9410385.html
Copyright © 2020-2023  润新知