js笔记之while、break、for循环小练习

本文集涵盖了一系列JavaScript编程挑战,包括数字操作、循环控制、数组处理及算法实现,通过实例解析提升编程技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.四位随机数进行翻转 如1234翻转后4321
const MIN = 1000;
const MAX = 10000;
var ran = parseInt(Math.random() * (MAX - MIN) + MIN);//获得随机数
console.log('原来随机数' + ran);
var unit = ran % 10;
var decade = parseInt(ran / 10 % 10);
var hundreds = parseInt(ran / 100 % 10);
var kb = parseInt(ran / 1000);

var result = unit * 1000 + decade * 100 + hundreds * 10 + kb;
console.log('翻转后' + result) 
2.使用按位异或实现交换两个变量的值。并打印交换前后的结果。
    var num1 = 123;
    var num2 = 321;

    num1 = num1 ^ num2;
    num2 = num1 ^ num2;
    num1 = num1 ^ num2;

    console.log('num1' + num1);
    console.log('num1' + num2);
while小练习
3.用while求1-100的奇数的累加和
var sum=0;
    var num=1;
    while (num<=100){
        if (num%2!==0){
            sum=sum+num;
        }
        num++;//相当于for
    }
    console.log(sum);
4.已知,你有100元,去买水,一瓶2元,空瓶可以换吧1元,瓶盖可以换0.5元。求:100元最多能买多少水?
var money = 100;
    const WATER_PRICE = 2;
    const BOTTLE_PRICE = 1;
    const BOTTLE_CAP = 0.5;

    //计数器
    var counter = 0;
    while (money >= WATER_PRICE) {
        //买水
        money -= WATER_PRICE;
        //退瓶 退瓶盖 计数
        money += BOTTLE_PRICE;
        money += BOTTLE_CAP;
        counter++
    }
    console.log('钱还剩:'+money);
    console.log('一共买了'+counter+'瓶');
5.使用break实现1-100累加和
var sum=0;
    var num=1;
    while (true){
        sum+=num;
        if (100===num){
            break;
        }
        num++;
    }
    console.log('sum='+sum)
6.使用continue实现奇数1-100累加和
//continue跳过本次循环,进行下次循环
var sum=0;
    var num=0;
    while (true){
        num++;
        //偶数代码应该跳过
        if(num%2===0)continue;
        sum+=num;
        if (num===99)break;//因为求的是奇数
    }
    console.log(`sum=${sum}`)
for循环嵌套
7.将2-100之间所有质数并打印
  //外层遍历数值2-100
  for (var i = 2; i <=100 ; i++) {
        var flag=false;
        //内层判断范围2-i-1,判断当前i是否为质数
        for (var j = 2; j <i ; j++) {
            if (i%j===0){
                flag=true;
                break;//只结束内层循环,到内循环后执行
            }
        }
        if (!flag){
            console.log(i+'\t是质数')
        }
        else {
            console.log(i+'\t是合数')
        }
    }
8.百元买百鸡:已知有100大洋,公鸡5元,母鸡3块,小鸡一块钱仨,求100大洋买100个鸡最多有几种购买方法
 //把所有排列组合遍历1遍
    for (var i = 0; i <= 20; i++) {//公鸡数量
        for (var j = 0; j <= 33; j++) {//母鸡数量
            for (var k = 0; k <= 300; k = k + 3) {//小鸡数量
                //满足价钱=100&&满足100鸡
                if (i + j + k === 100&&i*5+j*3+k/3===100) {
                    console.log(`公鸡:${i}母鸡:${j}小鸡 ${k}`)
                }
            }
        }
    }
9.随机得到一个矩形的宽度和高度,然后使用*号打印该矩形输出到页面上。
    const MIN = 5;
    const MAX = 20;

    var width = ~~(Math.random() * (MAX - MIN) + MIN);
    var height = ~~(Math.random() * (MAX - MIN) + MIN);

    console.log("width = " +width);
    console.log("height = " +height);
    //单层循环实现
    var count = width * height;
    for (var i = 1; i <= count; i++) {
        document.write('*');
        //当i的值是width的倍数时换行
        if (i % width === 0) {
            document.write('</br>')
        }
    }
    //双层for实现
    document.write('</br>');//换行与上个分隔开
    for (var i = 1; i < width; i++) {
        for (var j = 1; j < height; j++) {
            document.write('*')
        }
        document.write('</br>')
    }
10.for循环打印99乘法表
for (var i = 1; i <= 9; i++) {
        for (var j = 1; j <= i; j++) {
            var num = j * i;
            document.write(j + '*' + i + '=' + num);
            document.write('  ')
        }
        document.write('</br>')
    }
11.打印等腰三角形
    document.write('</br>');
    for (var i = 1; i <= 5; i++) {
        //输出空格
        for (var j = 1; j <= (5 - i); j++) {
            //document.write('&nbsp')
            //输出隐藏的*
            document.write('<span style="opacity: 0">*</span>')
        }
        for (var j = 1; j <= (2 * i - 1); j++) {
            document.write('*')
        }
        document.write('</br>')
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百事可口

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值