[学][2023.11.14] Java 自学 强化 第二天

文章详细介绍了使用Java编程语言实现10以内的偶数生成、不同循环结构(for、while、do-while)的应用、累加和计算、水仙花数检测、矩阵与三角形输出、九九乘法表、素数查找、死循环、数组遍历与最值求解、指定元素位置查找等内容。
摘要由CSDN通过智能技术生成

Test01 continue 实现 10 以内的偶数 用三种方法

/**
         * continue 来实现 10 以内的偶数
         */

        //for方法
        //定义变量
        int a;
        for (a=0;a<=10;a++){
            //判断是否为偶数,是偶数输出,不是偶数结束本次循环
            if (0 != a%2){
                continue;
            }
            System.out.print(a+ "\t");
        }

        System.out.println();

        //while方法
        int b=0;
        while(b<=10){
            if (b % 2 != 0 ){
                b++;
                continue;
            }
            System.out.print(b+ "\t");
            b++;
        }

        System.out.println();

        //do while 方法
        int c=0;
        do {
            if (c % 2 != 0){
                c++;
                continue;
            }
            System.out.print(c + "\t");
            c++;
        }while (c<=10);

//发现问题①

        //while方法
        int b=0;
        while(b<=10){
            if (b % 2 != 0 ){
                continue;
            }
            System.out.print(b+ "\t");
            b++;
        }

        System.out.println();

运行结果 是 0

当第一遍循环,0%2等于0时,不执行if语句块,输出0,b++,此时b=1;

当b=1时,执行if语句块,执行continue;结束本次循环,从而进入死循环一直显示0;

//发现问题 ②

        //do while 方法
        int c=0;
        do {
            if (c % 2 != 0){
                c++;
                continue;
            }
            System.out.print(c + '\t');
            c++;
        }while (c<=10);

运行结果是:9 11 13 15 17 19

因为输出时 双引号\t  ;   打成了单引号\t   ;   '\t'  的ASCII码为9

"\t" 双引号 为转义字符, 代表的是一个tab,也就是8个空格。
‘\t’  单引号, 这就和 ‘a’和"a"一样,字符和字符串的区别,
‘\t’  你别看他由两个东西组成,  \代表转义,   是不算长度的
System.out.println((int)’\t’); //9 

Test02 输出100以内的累加和

 /**
         * 输出 100 以内的 累加和
         */

        //for循环
        int sum1 = 0;
        for (int a=0;a<=100;a++){
            sum1 += a;
        }
        System.out.println(sum1);

        //do while 循环
        int sum2 = 0;
        int b= 0;
        do {
            sum2 += b;
            b++;
        }while (b<=100);
        System.out.println(sum2);

        //while 循环
        int sum3 = 0;
        int c = 0;
        while (c<=100){
            sum3 += c;
            c++;
        }
        System.out.println(sum3);

Test03 求100以内的偶数和

        /**
         * 求100以内的偶数和
         */

        //for 循环
        int sum1=0;
        for (int a=0;a<=100 ;a++){
            if(a%2==0){
                sum1 += a;
            }
        }
        System.out.println(sum1);

        //do while 循环
        int sum2=0,b=0;
        do {
            if(b%2==0){
                sum2 += b;
            }
        }while (++b<=100);
        System.out.println(sum2);

        //while 循环
        int sum3=0 , c=0;
        while (c++<=100){
            if(c%2==0){
                sum3 += c;
            }
        }
        System.out.println(sum3);

Test04 水仙花数

        /**
         * 水仙花数
         */

        int i;
        int a,b,c;
        for (i=100; i<=999;i++){
            a = i % 10;
            b = i / 10 % 10;
            c = i /100;
            int sum;
            sum= (a*a*a) + (b * b * b) + (c * c * c);
            if ( sum != i ){
                continue;
            }
            System.out.println(sum);
        }

Text 05  输出9行9列星号组成的矩阵型; 输出9行星号组成的直角三角形

        /**
         * 输出9行9列星号组成的矩阵型;
         */
        for (int i=1; i<=9; i++){
            for (int j=1; j<=9; j++){
                System.out.printf("*");
            }
            System.out.println();
        }


        /**
         * 输出9行星号组成的直角三角形
         */
        for (int n=1; n<=9; n++){
            for (int m=n; m>=1; m--){
                System.out.printf("*");
            }
            System.out.println();
        }

        /**
         * 输出9行星号组成的直角三角形
         */
        for (int n=0; n<9; n++){
            for (int m=0; m<=n; m++){
                System.out.printf("*");
            }
            System.out.println();
        }

Test06  九九乘法表

        /**
         *99乘法表
         */

        for (int i=1; i<=9; i++){
            for (int j=1; j<=i; j++){
                System.out.printf("%d x %d = %d \t",j,i,i*j);
            }
            System.out.println();
        }

Test07  等腰三角形

        /**
         * 输出9行*号组成的等腰三角形
         */
        for (int i = 1; i<=9; i++){
            for (int j = 1; j<=9-i; j++){
                System.out.printf(" ");
            }
            for (int k=1; k<=i*2-1; k++){
                System.out.printf("*");
            }
            System.out.println();
        }

Test08 求1000以内的素数

        /**
         * 输出1000以内的素数
         */
        int j;
        int sum=0;
        for (int i = 3;i<1000;i++){
            for (j =2 ;j<i;j++){
                if (i % j == 0 ){
                    break;
                }
            }
            if (!(j<i)){
                System.out.println(i);
                sum++;
            }
        }
        System.out.println(sum+"个");

//判断当 j 不小于 i 时, 输出此时 i 的值   这里理解的不是很透彻

            if (!(j<i)){
                System.out.println(i);
                sum++;
            }

Test09 死循环

/**
         * 死循环
         */

        Random random = new Random();
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入一个100以内的数:");

        int res = random.nextInt(100);
        
        while (true){
            int yus = scanner.nextInt();
            if (yus<res){
                System.out.println("小");
            }else if(yus>res){
                System.out.println("大");
            }else {
                System.out.println("对了");
                break;
            }
        }

Test10 数组遍历

 /**
         * 数组的遍历
         */
        int[] arr1 = {7,5,4,5,4,4,4,5};
        for (int i=0;i< arr1.length;i++){
            System.out.print(arr1[i]);
        }
        System.out.println();
        for (int i=arr1.length-1;i>=0;i--){
            System.out.print(arr1[i]);
        }

Test11 数组求最值

 /**
         *求最值
         */
        //调用生成随机数
        Random random = new Random();
        //自定义一个数组 长度20
        int[] arr2 = new int[20];
        //将自动生成的随机数存放再数组里
        for (int i=0;i<arr2.length; i++){
            arr2[i] = random.nextInt(100);
        }
        //遍历数组
        for (int i = 0 ;i<arr2.length;i++){
            System.out.print(arr2[i] + "\t");
        }

        System.out.println();

        //定义最大值变量max,并判断最大值 赋值给max,输出max
        int max=0;
        for (int i=0;i<arr2.length; i++){
            if (arr2[i]>max){
                max = arr2[i];
            }
        }
        System.out.println(max);

Test12 数组求最值 及其 下标

        /**
         *求最值 以及下标
         */
        //调用生成随机数
        Random random = new Random();
        //自定义一个数组 长度20
        int[] arr = new int[20];
        //将自动生成的随机数存放再数组里
        for (int i=0;i<arr.length;i++){
            arr[i] = random.nextInt(100);
        }
        //遍历数组
        for (int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }

        System.out.println();

        //定义最大值变量max,并判断最大值 赋值给max,输出max
        int max=0;
        for (int i=0;i<arr.length;i++){
            if( arr[i] > arr[max]){
                max= i;
            }
        }
        System.out.println( "最大值" + arr[max]);
        System.out.println( "数组下标" + max);

Test13 求指定元素的位置

        /**
         * 求指定元素的位置
         */

        //生成随机数
        Random random = new Random();

        //定义一个数组,并将随机产生的数存入数组
        int[] arr = new int[10];
        for (int i = 0; i< arr.length;i++){
            arr[i] = random.nextInt(100);
        }

        //遍历数组 查看其数据 共用户选择
        for (int i=0;i<arr.length;i++){
            System.out.print(arr[i] + " ");
        }

        System.out.println();

        //扫描键盘输入的值
        Scanner scanner = new Scanner(System.in);
        //获取用户输入的值
        System.out.println("请选择一个数:");
        int a = scanner.nextInt();

        //
        int i;
        for (i=0;i< arr.length;i++){
            if (arr[i] == a){
                System.out.println("它的位置是"+ (i+1));
                break;
            }
        }
//        System.out.println("它的位置是"+ (i+1));

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值