Java漫谈5

时间:2022-05-03
本文章向大家介绍Java漫谈5,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

吴军老师有在他的《硅谷来信》中分享过他对于人工智能的看法,吴老师就认为,人工智能不会发展成黑客帝国的那种恐怖境地,原因是当初科学家在创立计算机之前先把人类要解决的事情分成了两类,一类是通过固定的步骤能得到答案的,另一类是无法通过确定的步骤得到准确答案的。而计算机的出现,就是为了提升解决前一种问题的效率和速度。

对于这种划分,仁者见仁智者见智。不过,我们先假定这种分法的正确性,那么,对计算机而言,它的出现,就是在替代人,做一些固定化流程的事情。比如从1+……+100这样的活,虽然我们也有高斯公式可以不用繁琐地一次次累加,但是尽管我们动用公式,也赶不上计算机累加的速度。而在这个累加的过程中,我们不会手动地每次都输入值,而是告诉计算机,你要从多少开始累加,到多少的时候停止累加,而这个过程就是传说中的流程控制。

所谓的流程控制,可以粗略地理解为,判断与循环的排列组合。为什么这么说呢,还是回到之前的累加的功能上,先不管任何的编程语句,就仅仅对这个过程做一个简单地抽象,我从哪个数开始加,加到哪个数的时候输出。那么把这个过程再整理一下就是,我需要判断开始和结束的点,剩下的就交给循环解决。这其中,判断归判断语句管理,循环归循环语句管理。

再细化一下,如果就是求从1+…+100,那么我们的任务可以拆分判断什么时候开始,判断什么时候循环,判断什么时候结束三部分。再细一步,就是从1开始,经过不断循环,累加到100结束。所以一个简单的for循环就此出现。大致如下

for(int i=1; i<101; i++){
    //your code ...

}

这里的i就像一个旁观者一样,冷眼旁观每一次的循环。但如果并不知道循环的次数,只知道循环体中的某一个变量本身就是一个判断条件的时候,for循环的写法就会显得繁琐,繁琐有二,其一为for的无限循环表示方法比较变扭,其二为for循环里面还要再套一层if判断,其简洁程度就不高了。就以喝水为例,我其实更加关心的是有没有喝饱这个状态,并不关心喝了几次,于是,用for语句就会出现上面的两个繁琐,而用while语句则会显得较为简洁,具体如下:

//for循环描述
for(;;){
    if(饱了么){
        break;
    }else{
        继续吃();
    }
}
//while循环描述
while(饿了么){
    继续吃();
}

你要是真的饿了一天的话,那么肯定是看到饭想都不想就会先吃,然后再判断有没有吃饱,这个时候,while循环就要变成do-while循环,因为do-while与while刚好相反,第一次的时候不判断,直接执行。代码如下:

do{
    继续吃();
}while(饱了么);

不过就目前来看,for循环用的最多,while循环会在自定义定时器这种情况下用一下,do-while循环就用得更少了。除了一般的计数,累加这样的重复性数学运算或者说是数学公式里会用到之外,其余用的多的是在集合中运用,那个时候,增强for循环会用得逐渐多起来,不过在那种情况下,for循环也是可以继续用的。增强for循环我们在谈到集合的时候再聊。此外,这只是我做到目前为止的遇到的比例,每个行业不同,比例也不同。根据自己的工作经验整理出一套自己的概率排布才更重要。

今天我们聊了一下流程控制语句,希望能让你对流程控制有一个新视角的理解,我们下回见。