Java基础总结02拓展

一阶段:JavaSE学习02拓展

看不懂或者不想看的可以跳往下一篇,这个只是让你知识面更宽更广
1.Scanner拓展
import java.util.Scanner;
/**
 * @author 你的大龙猫啊
 * @company www.com.hui
 */
/*
next():
   1.一定要读取到有效字符后才可以结束输入
   2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉
   3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
   4.next不能得到带有空格的字符串
nextLine():
   1.以enter为结束符,也就是说nextLine()方法返回的是输入之前的所有字符
   2.可以获得空白
 */
public class Expand04_Scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

//使用next方式接收数据
        System.out.println("请输入数据,此处使用next方式接收:");

        //判断用户有没有输入字符串
        if (sc.hasNext()) {
            //使用next方式接收
            String str = sc.next();
            System.out.println("输出的内容为:" + str);
        }
        //凡是属于IO流的类如果不关闭一直占用资源,要养成好习惯用完就关掉
        sc.close();

//使用nextLine方式接收数据
       /* System.out.println("使用nextLine方式接收:");

        //判断是否还有输入
        if (sc.hasNextLine()) {
            String str = sc.nextLine();
            System.out.println("输出的内容为:" + str);
        }
        sc.close();*/
    }
}

import java.util.Scanner;

/**
 * @author 你的大龙猫啊
 * @company www.com.hui
 */
/*
   我们可以输入多个中,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束并输出执行结果
 */
public class Expand_Scanner02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //和
        double sum = 0;
        //计算输入了多少个数字
        int count = 0;

        System.out.println("请输入数据:");

        //通过循环判断是否还有输入,并在里面对每一次进行求和统计
        while (sc.hasNextDouble()) {
            double number = sc.nextDouble();
            count++;
            sum += number;
            System.out.println("你输入了第" + count + "个数据,当前结果sum=" + sum);
        }
        System.out.println(count + "个数的和为" + sum);
        System.out.println(count + "个数的平均值是" + (sum / count));

        sc.close();
    }
}

2.位数分离拓展
import java.util.Scanner;
/**
 * @author 你的大龙猫啊
 * @company www.com.hui
 */
/*
需求:键盘录入一个三位数,将其拆分为个位 十位 百位后,打印在控制台 然后判断他是否是水仙花数(每位的立方和等于原数)
运行结果:请输入一个三位数
          123
          整数123个位为:3
          整数123十位为:2
          整数123百位为:1
 */
public class Expand_NumberSplit {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数");
        int number = sc.nextInt();
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number / 100 % 10;    //公式:往下推总结

        System.out.println("整数"+number +"的个位为:"+ge);
        System.out.println("整数"+number +"的十位为:"+shi);
        System.out.println("整数"+number +"的百位为:"+bai);

        if(number==ge*ge*ge+shi*shi*shi+bai*bai*bai){
            System.out.println(number+"是水仙花数");
        }else{
            System.out.println(number+"不是水仙花数");
        }
    }
}

3.质数拓展(了解即可,这个使用比较难理解的方式书写的(为了拓展goto),网上有简单的,可以自己去了解)
package com.hui.demo;
/**
 * @author 你的大龙猫啊
 * @company www.com.hui
 */
/*关于goto关键字
     goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto。
     然而,在break和continue在这两个关键字的身上,我们仍能看出一些goto的影子----带标签的break和continue。
     "标签"是指后面跟一个冒号的标识符,例如:label:
     对Java来说唯一用到的标签的地方是循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在器嵌套另一个循环,
     由于break和continue关键字通常指中断当前循环,若随同标签使用,它们就会中断存在标签的地方
*/
/*
需求:打印101-150之间的质数
//质数是指在大于1的自然数中,除了1和他本身以外不再有其他因数的自然数
 */
public class Demo26_PrimeNumber {
    public static void main(String[] args) {
        //很麻烦,不建议使用
      outer:for(int i=101;i<=150;i++){  //outer可以自己定义(与continue后面保持一致即可)
            for(int j=2;j<i/2;j++){
                if(i%j==0){
                    continue outer;
                }
            }
          System.out.print(i+" ");
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值