three-2


/*
    for循环
        1.格式:
            for(初始化表达式1;布尔表达式2;步进表达式4){
                循环体3;
            }
            其它语句;
        2.执行流程:
            1,2(循环条件:true),3,4 --> 2(循环条件:true),3,4 -->
            ... --> 直到2(循环条件:false)为false时,结束for循环,执行后面的其它语句
        3.练习
            (1)输出5次HelloWorld
            (2)输出1-5和5-1的数字
        4.注意:
            (1)for和(),以及()和{}之间是没有分号的
            (2)()中有3个表达式,之间用2个分号(缺一不可)隔开,第三个表达式后面没有分号
            (3)第二个表达式一定是布尔类型,结果只能是true和false
            (4)循环体就是一条/多条语句

        5.总结
            对于求和,计数的需求,解决方案:
            (1)循环的前面定义求和/计数变量
            (2)循环的内部完成求和/计数功能的实现
            (3)循环的后面打印求和/计数变量的结果数据
 */
public class Demo03ForHello {
    public static void main(String[] args) {
        //(1)输出5次HelloWorld
        for (int count = 1; count <= 5;count++) {
            System.out.println("HelloWorld...." + count);
        }
        System.out.println("--------------");
        for (int count = 0; count < 5; count++) {
            System.out.println("HelloWorld...." + count);
        }
        System.out.println("--------------");
        //(2)输出1-5的数字
        for (int i = 1; i <= 5; i++) {
            System.out.println(i);
        }
        System.out.println("--------------");
        //(2)输出5-1的数字
        for (int i = 5; i >= 1; i--) {
            System.out.println(i);
        }
        System.out.println("game...over...");
    }
} 

/*
    需求:
        求1-5之间的数据和,并把求和结果在控制台输出

    实现步骤:
        1.定义int变量sum,用来累加求和,初始化值0
        2.使用for循环获取1-5的数字,循环变量int类型i
        3.把循环变量i中的当前数字累加到求和变量sum中
        4.循环结束后,输出求和结果sum
 */
public class Demo04Sum5 {
    public static void main(String[] args) {
        /*
            第一次: sum是0,i是1
                i<=5 --> 1<=5 --> true --> 执行循环体
                sum = sum + i = 0 + 1 = 1  i++ --> i:2
            第二次: sum是1,i是2
                i<=5 --> 2<=5 --> true --> 执行循环体
                sum = sum + i = 1 + 2 = 3  i++ --> i:3
            第三次: sum是3,i是3
                i<=5 --> 3<=5 --> true --> 执行循环体
                sum = sum + i = 3 + 3 = 6  i++ --> i:4
            第四次: sum是6,i是4
                i<=5 --> 4<=5 --> true --> 执行循环体
                sum = sum + i = 6 + 4 = 10  i++ --> i:5
            第五次: sum是10,i是5
                i<=5 --> 5<=5 --> true --> 执行循环体
                sum = sum + i = 10 + 5 = 15  i++ --> i:6
            第六次: sum是15,i是6
                i<=5 --> 6<=5 --> false --> 结束for循环,执行for后面的输出语句
         */
        //1.定义int变量sum,用来累加求和,初始化值0
        int sum = 1;
        //2.使用for循环获取1-5的数字,循环变量int类型i
        for (int i = 1; i <= 5; i++) {
            //3.把循环变量i中的当前数字累加到求和变量sum中
            sum = sum + i;
        }
        //4.循环结束后,输出求和结果sum
        System.out.println("1-5的数字之和: " + sum);
    }
}
 

/*
    需求:
        求1-100之间的偶数和,并把求和结果在控制台输出

    实现步骤:
        1.定义int变量sum,初始化值0,用来累加求和
        2.使用for循环获取1到100之间的数字,循环变量int类型num
        3.循环内部判断num中的当前数字如果是偶数
        4.循环内部把num中当前的偶数数字累加到求和变量sum中
        5.for循环结束后,输出求和结果sum
    快捷键:
        数字常量/变量.fori: 正着循环
        数字常量/变量.forr: 倒着循环
        .var --> 回车: 生成变量
 */
public class Demo05SumOu {
    public static void main(String[] args) {
        //1.定义int变量sum,初始化值0,用来累加求和
        int sum = 0;
        //2.使用for循环获取1到100之间的数字,循环变量int类型num
        for (int num = 1; num <= 100; num++) {
            //3.循环内部判断num中的当前数字如果是偶数
            if (num % 2 == 0) {
                //4.循环内部把num中当前的偶数数字累加到求和变量sum中
                sum = sum + num;//等价于: sum += num
            }
        }
        //5.for循环结束后,输出求和结果sum
        System.out.println("1-100的偶数数字之和: " + sum);
        System.out.println("----------------------------");
        //使用for循环获取1到100之间的每个偶数数字
        int sum2 = 0;
        for (int num = 0; num <= 100; num += 2) {
            sum2 += num;
        }
        System.out.println("1-100的偶数数字之和: " + sum2);
    }
} 

/*
    需求:
        在控制台输出所有的“水仙花数”

    解释:什么是水仙花数?
        水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
        例如 153 3*3*3 + 5*5*5 + 1*1*1 = 27 + 125 + 1 = 153

    实现步骤:
        1.使用for循环获取所有的三位数字,循环变量int类型num
        2.在循环内部计算num中当前数字的个位十位百位,分别保存int变量ge,shi,bai中
        3.在循环内部计算num中当前数字的个位十位百位的立方和,保存int变量sum
        4.在循环内部判断如果立方和 等于 num中的数字本身,说明该数字是水仙花数字
        5.在循环内部输出当前水仙花数字
 */
public class Demo06ForSXH {
    public static void main(String[] args) {
        //1.使用for循环获取所有的三位数字,循环变量int类型num
        for (int num = 100; num < 1000; num++) {
            //2.在循环内部计算num中当前数字的个位十位百位,分别保存int变量ge,shi,bai中
            int ge = num % 10;//个位
            int shi = num / 10 % 10;//十位
            int bai = num / 100 % 10;//百位
            //3.在循环内部计算num中当前数字的个位十位百位的立方和,保存int变量sum
            int sum = ge * ge * ge + shi * shi * shi + bai * bai * bai;
            //4.在循环内部判断如果立方和 等于 num中的数字本身,说明该数字是水仙花数字
            if (sum == num) {
                //System.out.println(num + "的个位: " + ge + ", 十位: " + shi + ", 百位: " + bai + ", 立方和: " + sum);
                //5.在循环内部输出当前水仙花数字
                System.out.println(num);
            }
        }
    }
} 

/*
    需求:
        在控制台输出所有的“水仙花数”及个数

    解释:什么是水仙花数?
        水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
        例如 153 3*3*3 + 5*5*5 + 1*1*1 = 27 + 125 + 1 = 153

    实现步骤:
        0.定义int变量count,初始值0,用来统计水仙花数字的个数
        1.使用for循环获取所有的三位数字,循环变量int类型num
        2.在循环内部计算num中当前数字的个位十位百位,分别保存int变量ge,shi,bai中
        3.在循环内部计算num中当前数字的个位十位百位的立方和,保存int变量sum
        4.在循环内部判断如果立方和 等于 num中的数字本身,说明该数字是水仙花数字
        5.在循环内部输出当前水仙花数字
        6.在循环内部把计数器count的值增加1
        7.循环结束后,输出计数结果count
 */
public class Demo07ForSXHCount {
    public static void main(String[] args) {
        //0.定义int变量count,初始值0,用来统计水仙花数字的个数
        int count = 0;
        //1.使用for循环获取所有的三位数字,循环变量int类型num
        for (int num = 100; num < 1000; num++) {
            //2.在循环内部计算num中当前数字的个位十位百位,分别保存int变量ge,shi,bai中
            int ge = num % 10;//个位
            int shi = num / 10 % 10;//十位
            int bai = num / 100 % 10;//百位
            //3.在循环内部计算num中当前数字的个位十位百位的立方和,保存int变量sum
            int sum = ge * ge * ge + shi * shi * shi + bai * bai * bai;
            //4.在循环内部判断如果立方和 等于 num中的数字本身,说明该数字是水仙花数字
            if (sum == num) {
                //System.out.println(num + "的个位: " + ge + ", 十位: " + shi + ", 百位: " + bai + ", 立方和: " + sum);
                //5.在循环内部输出当前水仙花数字
                System.out.println(num);
                //6.在循环内部把计数器count的值增加1
                count++;
            }
        }
        //7.循环结束后,输出计数结果count
        System.out.println("以上水仙花数字的个数: " + count + "个");
    }
} 

//统计1到10之间的偶数的个数
public class Demo08ForCount {
    public static void main(String[] args) {
        int count = 0;
        for (int i = 1; i <= 10; i++) {
            if (i % 2 == 0) {
                System.out.println(i);
                count++;
            }
        }
        System.out.println("以上偶数总共有: " + count + "个");
    }
}
/*
    while循环
        1.格式:
             初始化表达式1;
             while(布尔表达式2){
                循环体3;
                步进表达式4;
             }
            其它语句;
        2.执行流程:
            1,2(循环条件:true),3,4 --> 2(循环条件:true),3,4 -->
            ... --> 直到2(循环条件:false)为false时,结束for循环,执行后面的其它语句
        3.练习
            输出5次HelloWorld
        4.注意:
            (1)while和(),以及()和{}之间是没有分号的
            (2)()中的表达式必须是布尔类型
            (3)循环体就是一条/多条语句
 */
public class Demo04WhileHello {
    public static void main(String[] args) {
        //输出5次HelloWorld
        int count = 1;//初始化表达式1;
        //布尔表达式2
        while (count <= 5) {
            System.out.println("HelloWorld...." + count);//循环体3;
            count++;//步进表达式4: 修改循环变量的值的
        }
        System.out.println("game...over...");
    }
}
/*
    需求:
        世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。
        请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
        折纸(折叠后的厚度是原有厚度的2倍,而不是平方的关系):
            原来: 0.1 paper
            第一次: 0.1*2: 0.2 paper = paper * 2
            第二次: 0.2*2: 0.4
            第三次: 0.4*2: 0.8
            第四次: 0.8*2: 1.6
            ...

    实现步骤:
        1.定义int变量count,初始值0,用来统计折叠纸张的次数
        2.定义两个double变量zf和paper代表珠峰的高度和纸张的厚度,并根据题目需求进行初始化
        3.因为到底折叠多少次纸张可以达到珠峰的高度,是不确定的,建议使用while循环
        3.1 循环条件: 纸张的厚度(循环变量) < 珠峰的高度
        3.2 循环体: 折叠一次纸张  paper = paper * 2
        3.3 步进表达式: 计数器count的值增加1
        3.while循环结束,输出count的值
 */
public class Demo05WhileZF {
    public static void main(String[] args) {
        //1.定义int变量count,初始值0,用来统计折叠纸张的次数
        int count = 0;
        //2.定义两个double变量zf和paper代表珠峰的高度和纸张的厚度,并根据题目需求进行初始化
        double zf = 8844430, paper = 0.1;
        //3.因为到底折叠多少次纸张可以达到珠峰的高度,是不确定的,建议使用while循环
        //3.1 循环条件: 纸张的厚度(循环变量) < 珠峰的高度
        while (paper < zf) {
            //3.2 循环体: 折叠一次纸张  paper = paper * 2
            paper = paper * 2;
            //3.3 步进表达式: 计数器count的值增加1
            count++;
            System.out.println("第" + count + "次折叠后,纸张高度: " + paper);
        }
        //3.while循环结束,输出count的值
        /*
            发现最终纸张厚度:
                1.34217728E7        科学计数法  1.34217728 × 10的7次方 --> 13421772.8
            分析发现:
                最终厚度大约是珠峰的两倍(不到两倍),因为少折叠一次都不到高度(差了一点点),
                所以需要再折叠一次
         */
        System.out.println("总共折叠" + count + "次,可以达到珠峰的高度,最后纸张的厚度" + paper);
    }
}/*
    do-while循环:
        1.格式:
            初始化表达式1;
            do {
                循环体3;
                步进表达式4;
            } while(布尔表达式2);
            其它语句;
        2.执行流程:
            1,3,4 --> 2(循环条件:true),3,4
            -->2(循环条件:true),3,4
            ...
            -->直到2(循环条件:false)时,结束do-while循环,执行后续其它语句

        3.练习:
            输出5次HelloWorld

        4.注意:
            (1)do和{},{}和while,以及while后()之间都是没有分号的
            (2)()中的表达式必须是布尔类型,而且()后面必须写一个分号,不写是语法格式错误
            (3)循环体就是一条/多条语句
            (4)代码从上到下依次执行,它是先执行循环体,再进行条件判断,所以对于do-while而言,循环体至少执行一次

 */
public class Demo06DoWhile {
    public static void main(String[] args) {
        int count = 1;
        do {
            System.out.println("HelloWorld..." + count);
            count++;
        } while (count <= 3);
        System.out.println("game...over...");
    }
}
/*
    死循环
        1.概念: 用不停止的循环,又叫做永真循环

        2.分类:
            (1)for循环的死循环格式: for芬芬
                for (; ; ) {
                    ...
                }

            (2)while循环的死循环格式:
                while (true) {
                    ...
                }

            (3)do-while循环的死循环格式:
                do {
                    ...
                } while (true);
 */
public class Demo07DeadLoop {
    public static void main(String[] args) {
        //for的死循环
        //不写布尔表达式: 默认是true
        /*for (; ;) {
            System.out.println("HelloWorld...");
        }*/
        //while的死循环
        /*while(true) {
            System.out.println("HelloWorld...");
        }*/
        //do-while的死循环
        do{
            System.out.println("HelloWorld...");
        }while (true);
    }
}
/*
    三种循环的区别总结
        1.建议使用的顺序: for,while,do-while
        2.循环次数确定的话,建议使用for,循环次数不确定建议使用while 【先了解: 后面有使用场景】
            循环次数不确定需要先写成死循环的格式【while好看】    --------明天讲解
        3.do-while循环来讲的话,至少执行一次
            for/while: 循环体可以一次都不执行 原因: 先判断条件,后执行循环体
            do-while: 循环体至少执行一次 原因: 先执行循环体,后判断条件
        4.while和do-while循环而言,循环结束后,初始化条件中定义的变量可以继续使用,
            但是for循环的不能使用(在for循环内部定义初始化语句)

        以下说法正确的是:  ABCEF
            A: for循环是先判断条件,后执行循环体
            B: while循环是先判断条件,后执行循环体
            C: do-while循环是先执行循环体,后判断条件
            D: for和while至少执行一次
            E: for和while可以一次都不执行
            F: do-while而言至少执行一次
 */
public class Demo08LoopDiff {
    public static void main(String[] args) {
        /*
        //演示do-while循环: 循环体至少执行一次
        for (int i = 5; i < 0; ) {
            System.out.println("HelloWorld");
        }
        int j = 5;
        while (j < 0) {
            System.out.println("HelloWorld");
        }

        int k = 5;
        do {
            System.out.println("HelloWorld");
        } while (k < 0);*/

        for (int i = 1; i <= 3; i++) {
            System.out.println("HelloWorld...for...in..." + i);
        }
        //错误: i是在for内部定义的,只能在for内部使用
        //System.out.println("HelloWorld...for...out..." + i);
        int j = 1;
        while (j <= 3) {
            System.out.println("HelloWorld...while...in..." + j);
            j++;
        }
        //正确: j是在while循环外面定义的,是在main方法中定义的,只要在main方法中都是有效的
        System.out.println("HelloWorld...while...out..." + j);

        int k = 1;
        do {
            System.out.println("HelloWorld...do...while...in..."+k);
            k++;
        } while (k <= 3);
        //正确: k是在do-while循环外面定义的,是在main方法中定义的,只要在main方法中都是有效的
        System.out.println("HelloWorld...do...while...out..."+k);
        System.out.println("game...over...");
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: React Three Fiber 是一个用于在 React 中创建 3D 图形的库,它基于 Three.js。它提供了一种简单的方式来创建 3D 场景和对象,同时利用 React 的组件化和状态管理功能。如果您想要在 React 中创建 3D 图形,React Three Fiber 是一个很好的选择。 ### 回答2: React Three Fiber是一个基于React的3D渲染库,它允许开发者使用React的声明性语法来创建复杂的3D场景和动画效果。它是Three.js的React绑定,通过将React的虚拟DOM与Three.js的强大功能结合起来,使得在React项目中创建和管理3D内容变得更加简单和高效。 React Three Fiber提供了一组易于使用的组件,开发者可以通过这些组件来创建3D对象、灯光、相机等。同时,它还提供了一套API,可以与Three.js进行交互,使用Three.js的功能来操作3D对象、应用材质、添加动画等。 React Three Fiber还支持响应式设计,可以根据屏幕大小和设备类型自动调整3D场景的显示和渲染。它使用了WebGL来进行渲染,能够在现代浏览器上快速而流畅地呈现3D效果。 使用React Three Fiber,开发者可以利用React的组件化和状态管理功能来构建复杂的3D应用程序。它提供了一个统一的开发模式,使得开发者可以更加方便地管理和复用3D组件,同时也更容易进行调试和测试。 总之,React Three Fiber是一个强大且易于使用的3D渲染库,它将React和Three.js相结合,为开发者提供了创建高质量3D内容的工具和技术。无论是开发游戏、可视化应用还是建模工具,React Three Fiber都可以帮助开发者更高效地实现他们的想法。 ### 回答3: React-Three-Fiber是一个基于React和Three.js的库,它提供了在React应用中创建3D图形的能力。它使用了React的声明式编程模型,使得创建和更新3D场景变得更加简单和高效。 React-Three-Fiber的优势之一是它与React生态系统的无缝集成。开发者可以使用React的组件化思想来构建可重复使用的3D组件,这简化了代码的管理和维护。通过使用React的状态管理和生命周期方法,我们可以轻松处理3D场景中的交互和动画效果。 在React-Three-Fiber中,我们使用JSX语法来描述三维场景中的元素,这使得代码更易于阅读和编写。通过编写自定义组件,我们可以创建灵活且可扩展的3D模型,并将其组合起来以构建复杂的场景。 React-Three-Fiber还提供了一些有用的功能,例如虚拟相机和光源的自动设置,使得相机和光照的配置更加简单。它还内置了一些常见的渲染器,并提供了可自定义的渲染配置选项。 总的来说,React-Three-Fiber是一个非常强大的工具,它为React开发者提供了在Web应用中创建3D图形的能力。它的简洁易用的API和与React的无缝集成使得开发者可以在不学习全新技术栈的情况下,轻松地构建交互性强且富有创意的3D应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值