老师想问下这2个理解的区别?

老师想问下这2个理解的区别?

1.

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Math.random()</title>
</head>
<body>
<script>
    var input=prompt("请输入你猜的数字");
    var arr=Math.floor(Math.random()*9+1);
    while(input!=arr){
        if(input>arr){
            alert("输入的数字太大了");
        }else{
            alert("输入的数字太小了")
        }var input=prompt("请输入你猜的数字");
    }
        if(input=arr){
            alert("正确!")
            
        }
  //补充代码

</script>
</body>
</html>

2.

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Math.random()</title>
</head>
<body>
<script>
    var input=prompt("请输入你猜的数字");
    var arr=Math.floor(Math.random()*9+1);
    while(input!=arr){
        if(input>arr){
            alert("输入的数字太大了");
        }else{
            alert("输入的数字太小了")
        }var input=prompt("请输入你猜的数字");
    }

            alert("正确!")

  //补充代码
</script>
</body>
</html>

这两个写法好像都可以实现,想问下第一种写法有错误吗?然后问下第二种方法写在while循环外面直接alert是意思理解为除了input!=arr或>arr或<arr这三种情况外直接显示为正确吗? 可是并没有写明input=arr 系统就能知道判断 是等于arr就提示正确呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
好帮手慕码 2020-01-12 17:26:40

同学你好,针对你的问题如下解答:

(1)整理代码可以通过插件实现,例如“ Prettier - Code formatter”;

http://img1.sycdn.imooc.com//climg/5e1abd130900fd0102900113.jpg

(2)“彩票的实现”的逻辑比猜大猜小的逻辑复杂多了,所以不能作为参照。而且每期彩票中的数字也是随机出来的一组,不会说有一些人买了之后,数字就变了。这里老师强调的是“猜对的几率会非常非常小”,那么判断猜大猜小也会变得无意义。提示猜大了之后,随机数又变了,因此这时候的比较是毫无意义的。

同学可以再理解一下。如果有其他问的话,建议同学新建提问,以便日后对于问题的追踪和归纳。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

好帮手慕码 2020-01-12 10:11:29

同学你好,你这个逻辑是有问题的。

一般来说,随机数是初始生成的,不会改变,直到猜对为止。如果按照同学的想法,在猜不对的情况下,都会每次生成一个新的随机数,那么猜对的几率会非常非常小,也那么猜大猜小也会失去意义,因此这个逻辑是有问题的。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 陈立天 #1
    老师还想问个无关的问题,就是在别的地方复制进去vs code里面之后格式是乱的 不对齐的,要怎么设置把他自动对齐和换行?
    2020-01-12 11:37:53
  • 提问者 陈立天 #2
    我想实现的比如是类似开彩票的这种效果,比如第一次打开随机生成一个1-10的数字 我第一次猜 猜错或者猜对是10%的几率。第二次重新点了确定之后系统会自动生成一个随机数,而不是原来的随机数。不需要重新打开网页才能生成一个随机数。所以这样的逻辑应该是有意义的。
    2020-01-12 12:25:50
卡布琦诺 2020-01-11 18:03:16

同学你好,关于同学的代码解答如下:

1、方法一的代码有一些冗余,首先分两种情况,一种是input!=arr,另一种是input=arr,其中input!=arr分为两种情况,一种是>arr,另一种是<arr,那么,也就是说,在while中判断了input!=arr以及input!=arr的两种情况(>arr、<arr)剩下的就是input=arr这种情况了。

2、目前没有办法获取到每一个随机数,因为一次生成一个随机数,然后根据你输入的各个数字进行匹配,才能匹配到,如果是输入一个数字,就随机生成一个匹配数字,那么输入的数字匹配到随机生成的数字的机会是非常渺茫的。匹配随机数的代码原理是:随机生成一个数,与输入的数字进行匹配,匹配成功后,如果进行第二次匹配,第二次再重新随机生成一个数,再与输入的数字进行匹配……以此类推。

如果我的回答帮助了你,希望采纳,祝学习愉快!

  • 提问者 陈立天 #1
    可能我的表达有点错误造成老师误解了第二点。我的意思是系统随机生成了一个数字,在输入框内输入这个数字 判断是否相等。然后点击了确定以后,系统还是原来那个数字,这时候重新输入数值去判断是否与上一个系统随机生成的数字相等。我想要实现的效果是:第一次假如随机生成一个数字6,假设我猜7,猜错了。点击确定以后系统再次重新生成一个数字,在去猜,而不是原来的6.
    2020-01-11 20:33:11
提问者 陈立天 2020-01-11 16:38:23

还有一个问题就是把随机数字显示出来,原来每次点了确定之后都是固定在原来随机生成的那个数字那里。只有关闭网页重新打开网页之后那个随机数字才会发生变化,点了确定之后是不会变化的。我以为是每次点确定后都会随机生成一个,如果要实现这样的效果要怎么写代码呢?

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Math.random()</title>
</head>
<body>
<script>
    var input=prompt("请输入你猜的数字");
    var arr=Math.floor(Math.random()*9+1);
    while(input!=arr){
        if(input>arr){
            alert("输入的数字太大了"+"随机数字是:"+arr);
        }else{
            alert("输入的数字太小了")
        }var input=prompt("请输入你猜的数字"+"随机数字是:"+arr);
    } alert("正确!")

        
        
        
       
        
    
  //补充代码

</script>
</body>
</html>


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师