weixin_41244451 2024-07-15 15:48 采纳率: 93.9%
浏览 1
已结题

do {//这里怎么写才能让除法结果都是整数} while (!validNumber);


let number1, operator, number2;
            let validNumber = false;
            if(weishu==2)
            {
                number1 = Math.floor(Math.random() * 90) + 10;
            }
            if(timushuzi==0)
            {
                number2 = Math.floor(Math.random() * 8) + 2;
            }
            else
            {
                number2 = timushuzi;
            }
            if(type==1000)//乘法
            {
                operator = '*';
                result = number1 * number2;
            }
            else
            {
                operator = '/';
                              // 循环直到找到一个合适的数字
                              do {
                    //这里怎么写才能让除法结果都是整数
                } while (!validNumber);
                result = number1 / number2;
            }
            question = `${number1} ${operator} ${number2}`;
            if(operator=='*')
            {
                fhao='×';
            }
            else
            {
                fhao='÷';
            }
            question1 = `${number1} ${fhao} ${number2}`;
            
            setTimeout(() => {
                displayQuestion(question1, '', '=');
            }, shijian*1000);

do {//这里怎么写才能让除法结果都是整数} while (!validNumber);

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-07-15 15:48
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    你的代码逻辑基本正确,但需要做一些调整来确保 validNumber 变量能够正确地控制循环的退出。以下是修改后的代码段,它将确保 number1 能够被 number2 整除:

    let number1, number2, operator, result, validNumber = false;
    
    // ... [其他代码] ...
    
    // 确保 number2 是一个正整数
    number2 = Math.floor(Math.random() * 8) + 2;
    
    // 循环直到找到一个合适的 number1
    do {
        // 生成一个 number1,它是 number2 的倍数
        let multiplier = Math.floor(Math.random() * 10) + 1; // 随机选择一个1到10之间的整数作为倍数
        number1 = number2 * multiplier;
        
        // 检查 number1 是否能被 number2 整除
        validNumber = (number1 % number2 === 0);
    } while (!validNumber); // 当 number1 能被 number2 整除时,validNumber 为 true,循环结束
    
    // 执行除法运算
    result = number1 / number2;
    
    // ... [其他代码] ...
    

    这段代码中,validNumber 是一个布尔变量,用于控制 do...while 循环。在循环内部,我们生成一个 multiplier 作为 number2 的倍数,然后将 number1 设置为 number2 乘以这个 multiplier。接着,我们检查 number1 是否能被 number2 整除,如果是,validNumber 将被设置为 true,这将导致循环结束。如果不是,循环将继续,直到找到满足条件的 number1

    请注意,由于 validNumber 始终在循环内部被设置为 true,因此循环将只执行一次,除非 number2 为0,但根据你的代码,number2 是通过 Math.floor(Math.random() * 8) + 2 来生成的,所以它永远不会是0。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月15日
  • 已采纳回答 7月15日
  • 创建了问题 7月15日

悬赏问题

  • ¥15 vue请求不到数据,返回状态200,数据为html
  • ¥15 访问url时不会自动调用其 Servlet的doGet()
  • ¥15 用白鹭引擎开发棋牌游戏的前端为什么这么难找
  • ¥15 MATLAB解决问题
  • ¥35 哪位专业人士知道这是什么原件吗?哪里可以买到?
  • ¥15 关于#c##的问题:treenode反序列化后获取不到上一节点和下一节点,Fullpath和Handle报错
  • ¥15 一部手机能否同时用不同的app进入不同的直播间?
  • ¥15 没输出运行不了什么问题
  • ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
  • ¥15 点云密度大则包围盒小