您的位置 首页 java

自学Java10(保姆级教学)——循环结构:while 与do while

在前面两次文章中,我们学习了最常见的两种流程控制语句:if else与switch case,从本期文章开始,我们开始学习 循环结构

其实我个人觉得计算机相较于人,它最大的优势是执行重复操作的时候非常迅速,而咱们人类的大脑在处理复杂情况的处理能力的时候是优于计算机的,毕竟计算机也是由人脑创造出来的嘛。废话不多说,我们可以来举几个简单的例子来说明一下,什么叫循环?

相信很多小伙伴在小时候,都有过被老师罚抄的经历,作业没写好,或者老师说了很多次的知识点还是做错了,老师就会通过罚抄来让我们记住这个知识点,你在重复得去抄这个知识点的这么一个动作,就是在执行循环操作。可能这个例子也不一定很恰当,但是我们可以用代码去演示一下的话其实也是可以的,结合我们上期的流程控制,我们来写一个简单的代码:

如果作业写好了就可以休息一下,如果没有写好的话,则需要罚抄10遍:

重点就在于罚抄十遍应该如何用代码去执行呢?我们可以用最笨的办法:

 Scanner scanner=new Scanner(System.in);
System.out.println("作业写好了吗(0代表没写好,1代表写好了):");
int num=scanner.nextInt();
if(num==1){
    System.out.println("可以休息一下!");
}else if(num==0){
    System.out.println("罚抄第1遍");
    System.out.println("罚抄第2遍");
    System.out.println("罚抄第3遍");
    System.out.println("罚抄第4遍");
    System.out.println("罚抄第5遍");
    System.out.println("罚抄第6遍");
    System.out.println("罚抄第7遍");
    System.out.println("罚抄第8遍");
    System.out.println("罚抄第9遍");
    System.out.println("罚抄第10遍");
}else{
    System.out.println("您的输入有误,请重新输入!");
}  

可以看看输出结果:

似乎也是可行,但是,如果是要我们罚抄1000遍呢?甚至10000遍呢?这个时候如果用手敲,效率是否会太低?你不可能指望公司让你一天到晚坐那敲这几行重复的代码吧?那干嘛不去找个打字员,打字应该比你更快些,而且比你便宜很多。这个时候,我们就需要用到循环了,我们以罚抄1000次为例,用 while 循环来执行看看:

 Scanner scanner=new Scanner(System.in);
System.out.println("作业写好了吗(0代表没写好,1代表写好了):");
int num=scanner.nextInt();
if(num==1){
    System.out.println("可以休息一下!");
}else if(num==0){
    int i=1;
    while (i<=1000){
        System.out.println("罚抄第"+i+"遍");
        i++;
    }
}else{
    System.out.println("您的输入有误,请重新输入!");
}  

来看一下输出结果:

1000行实在太多了,我截取到最后一行,感兴趣的小伙伴自己对着代码执行一下就可以了,这里我们就看到使用循环的方便了。

这里简单说一下while循环的格式:

首先需要在循环外 赋予一个初始值 :图中的

 int i=1;  

就是如此,i我们定义为抄的次数,同时也是初始值;

while(执行条件):

 while (i<=1000)  

其中的i<=1000就是执行,只要i满足小于1000这个条件,它就会去执行while内的语句;

执行动作(循环体):

 System.out.println("罚抄第"+i+"遍");  

这个就是当初始值,本题中为i满足执行条件(i<=1000)时执行的动作;

条件控制语句:

 i++;  

这个是条件控制,如果没有这个加1的操作,执行条件将会永远执行下去,将会变成一个死循环,就会无限执行下去了。

说完了while循环,那就简单得提一嘴 do while ,其实呢,并没有什么本质上的区别,这里我稍微写一下代码代价大家就清楚了:

  Scanner scanner=new Scanner(System.in);
        System.out.println("作业写好了吗(0代表没写好,1代表写好了):");
        int num=scanner.nextInt();
        if(num==1){
            System.out.println("可以休息一下!");
        }else if(num==0){
            int i=1;
//            while (i<=1000){
//                System.out.println("罚抄第"+i+"遍");
//                i++;
//            }
            do {
                System.out.println("罚抄第"+i+"遍");
                i++;
            }while(i<=100);
        }else{
            System.out.println("您的输入有误,请重新输入!");
        }  

如上图所示,其实不过是先执行一遍循环体的内容,再去做后续的判断罢了,你要问这两有啥区别啊?有啥区别?还能有啥区别?最多也就是哪怕执行条件不满足的话也会执行一次,而while循环则是一次都不会去执行。其实这个在实际工作中可以说毫无意义,纯粹是因为有这么一种结构,你就不能不说,你要是不说的话,就是业余!所以,哪怕没什么用,我这里还是得给大家说一下。很多东西就是这样,你可以不用,但是你得知道。

最后更文不易,希望大家可以多多点赞评论分享,当然如果可以留下一个关注自然是更好的啦~您的支持就是我更文最大的动力,我们下期再见!

文章来源:智云一二三科技

文章标题:自学Java10(保姆级教学)——循环结构:while 与do while

文章地址:https://www.zhihuclub.com/186767.shtml

关于作者: 智云科技

热门文章

网站地图