00:04
我们来写个小游戏看看啊,这个这个这个游戏算算不上什么小游戏,呃,我我们让计算机呢。来想一个数。啊,由他想一个,然后。让这个程序的用户呢,也就游戏的玩家呢,来猜这个数。每次他输入一个数。当然计算机讲的数都有范围,所以呢,我们规定说啊,100以内的一个正整数啊,然后用户输了一个数以后呢,程序就要告诉用户说你这个数大了还是小了。比如说呃,自然机拆的是70,用户说了50,那么程序就要说偏小了啊,或者说你猜的是小的啊,这个应该还要更大啊,那么反复。你可以让用户不断的来输入他心中,他猜测计算机想的那个数是多少,一直到最后猜中为止,那么猜中的时候呢,要输出说你猜中了啊,恭喜你猜中了,然后呢,还要叔叔说你猜了多少次,那么就意味着这中间要做计数对不对那。
01:04
因为需要让用户不断的去猜,所以当然这里面一定会要用到循环的结构。这个程序。怎么去想?其实跟前面那个例子是一样的,我们所有的程序,你要想的事情无非就是变量。算法。啊,我要有一些什么样的数据要表达,我要有一些什么样的计算步骤?把这些东西讲明白,你的程序就可以写出来了。在写程序之前,我们可以先试图,特别像这个地方看起来似乎有点复杂啊,逻辑关系什么的都有点复杂,我们可以先试着呢,把文字给它描述出来。用文字讲清楚这事是到底怎么回事,然后再来看程序能不能写。在这个。转法当中啊,核心的重点是这个。循环的条件,什么情况下循环还要继续?那就是没猜中了是吧?只要没猜中,循环就得要继续啊,我们来看看这个。
02:01
呃,描述可以怎么写,我们看到是这样,首先呢,我们让计算机,呃,随机想一个数。然后把它记在一个叫做number的书里头。接着呢,我们有一个负责计数的,因为最后我要输出嘛,你测了多少次,负责计数的那个数呢,变量呢,初始化为零,然后我开始让用户输入一个数,输入一个数以后我就判断。如果用户输入的这个数比我这个number要来的小,我就输出小了,如果他比我大,那我就说大了。那么如果这个数不等于number,也就是说,不管是大了还是小了,那我都得回头再来,对吧?那么如果它们相等了,那这事我就结束了。啊,我就出来,然后我就说你你多少次,所以循环的条件呢,是A和number不相等,要特别小心的是,对于Java来说,无论是瓦尔循环还是读瓦尔循环,循环的条件都是说循环得以维持,循环能够继续下去的条件,而不是循环离开的条件,尽管我们在想这件事情的时候心里会想。
03:04
什么什么时候我循环该结束了?你看我心里会想,A和number相等的时候,我循环该结束了,但是我写在那个瓦尔或者瓦尔里头的时候,我得写的是A和number不相等,我希望能够继续下去。根据这个我们来写写程序看,那么首先我们要有一个变量number,它表达的是计算机想出来的那个东西,随机的东西怎么做呢?我们需要用到一个帮手。是的。Random。Ma会给我们一个零到一之间的数是。这样的。也就是说这个数呢,有可能会是零,但是呢,绝对不可能是一,在零到一之间,它会随机给我们一个东西,那么我们需要给用户呢,按照题目的意思呢,是一个100以内的数嘛,所以是到100的啊到100。
04:04
那么当然这个时候,呃,包括100,但也问题不大啊,这个这个可以可以去猜的,怎么去得到,怎么去构造出这样一个东西来呢?那么首先第一步呢,我们要把随机的这个数呢,乘以100,那么它乘以100以后呢,这个就变成什么呢?是。零到100啊,但是呢,这个100是不包括的嘛,对不对,然后怎么把零变成一,那就再加一喽。啊,那么加一以后呢,就变成这边是。一了是吧,到一,然后那边呢,实际上是到101,那么因为都是整数的话呢,那我们就可以看作是这样的一个东西,对吧,当然还有一个问题,这是浮点数嘛,所以我们要用前面学过的说,我们要做类型转换,把整个的这个结果啊,类型转换成为一个整数,所以这样子呢,这一步我们就得到了一个计算机随机想出来的那么一个数,接下来。接下来我们要有一个变量,说这是用户读进来的那个书是吧,用户输进来的数,我们还需要有一个变量,有一个计数器,最后我们要输出那个计数器的结果啊,然后,但最后我们要做的事情是说我们会输出一句话说啊这个恭喜你猜对了。
05:19
你拆了。啊,然后呢,加上这个count说多少多少次是吧。OK,这这这没有问题,最后是这样子的啊,那中间是什么,中间要有个循环嘛。对不对,那中间有个循环呢,我们有哇,有毒。啊,有玩偶有毒。该选哪个?该选哪个,呃。我们可以这样子来做这件事情啊,我们先不考虑说该选哪个,我们到到后面再来说,我们现在想在循环里头我们要做些什么事,循环里面要做什么事呢?第一我要把那个速读进来对不对,所以A呢要等于in的。
06:05
Next in读进来之后,我们要判断说,如果A大于number的。那我要说出一句话说。这个你说的这个是偏大嘛,所以是偏大是吧,好这是一个那么else。如果不大于南是吧。那么我们还得判断,如果说诶小于number对吧,因为还有不大于number有两种情况嘛,小于等于都可能嘛,所以如果它小于number的,那么我们得再输出一句话说偏小啊。另外呢,还有一件事情别忘了做,就是读进来一个数了嘛,那不管它是否相等,那我们总得他他拆了一次嘛,每每输入一个数,我们就应该让那个count呢,等于count加一啊,得做这么一次事情好,那如果代码写到这个地步。
07:01
这个循环哇还是do哇,其实就呼之欲出了,因为循环体内已经决定了是这样子的,这个循环体无论怎么样,我们都得做一次吧,都得进来一次吧,你没有先决条件嘛,你总得先读一下用户的输入再做事情嘛,所以既然没有先决条件,那最合适的就是读啊循环进来做,然后读了一个书以后,我们判断条件,条件是什么。这时候的条件应该是,如果这个条件是成立的,我们还得继续,换句话说,你还想继续猜下去,你还没有猜出来,你还得再拆,什么时候什么事情表明没猜出来,Number和A是不相等。好,我们来试一下这个程序。我才才50。他说偏小。50如果偏小,就意味着这个数在50~100中间嘛,那么75还偏小。那就意味着在70。那就意味着在75~100中间嘛,那么再加多少。
08:04
再来87HAPPY一下。再加一点。还偏小。还偏小。终于猜对了啊,猜中了七次。大家可以去玩玩这个游戏啊,你会发现如果你的方法正确。你一定能够在七次之内猜到这个数。如果你不能在七次之内猜到这个数。但包括其次啊。说明你拆数的方法不对。
我来说两句