Java SE 基础进阶版知识

系列文章目录

提示:阅读本章之前,请先阅读目录



前言


scanner 获取用户输入

在这里插入图片描述

在这里插入图片描述

scanner.nextLine()
读取一整行的数据

package com.smobell.www.scanner;

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        // 先创建一个scanner对象
        Scanner scanner = new Scanner(System.in);
        // 获取输入
        System.out.println("请输入您的姓名:");
        String str = scanner.nextLine();
        // 输出
        System.out.println("系统已读取到您输入的:" + str);
        // 关闭scanner
        scanner.close();
    }
}

scanner.next()
只读取有效数据,空格之前的数据

package com.smobell.www.scanner;

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
        // 创建scanner
        Scanner scanner = new Scanner(System.in);
        // 获取输入
        System.out.println("请输入您的学号:");
        String str = scanner.next();
        // 输出
        System.out.println("系统已读取到您的学号:" + str);
        // 关闭
        scanner.close();
    }
}

scanner.hasNextLine()
判断有没有输入

package com.smobell.www.scanner;

import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {
        // 创建
        Scanner scanner = new Scanner(System.in);
        // 读取
        System.out.println("请输入您的数字:");
        if (scanner.hasNextLine()) {
            String str = scanner.nextLine();
            System.out.println("系统已读取到您的输入:" + str);
        } else {
            System.out.println("系统无法识别您的输入");
        }
        scanner.close();
    }
}

scanner,属于IO流,就是和电脑设备进行输入,输出的操作,最好养成习惯性的使用close,关闭,,这样可以优化资源

scanner进阶

计算多次输入的数字之和,平均值,次数

package com.smobell.www.scanner;

import java.util.Scanner;

public class Demo05 {
    /**
     * 计算多次输入的数字之和,平均值,次数
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double sum = 0.0;
        int count = 0;
        System.out.println("请输入数字(整数,负数,小数点),可多次输入,如需结束,输入exit!");
        while (scanner.hasNextDouble()) {
            double x = scanner.nextDouble();
            count++;
            sum += x;
            System.out.println("第"+count+"次,总和:"+sum+",平均值:"+(sum/count)+",个数:"+count);
        }
        System.out.println("【计算结束】第"+count+"次,总和:"+sum+",平均值:"+(sum/count)+",个数:"+count);
        scanner.close();
    }
}

运行结果
在这里插入图片描述

判断是不是整数,是不是浮点数

package com.smobell.www.scanner;

import java.util.Scanner;

public class Demo04 {
    /**
     * 判断是不是整数,是不是浮点数
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = 0;
        float f = 0.0F;
        System.out.println("请输入整数:");
        if (scanner.hasNextInt()) {
            i = scanner.nextInt();
            System.out.println("您输入了整数为:" + i);
        } else {
            // 这里进行一个接收,否则会把结果带给下一个scanner
            String x = scanner.next();
            System.out.println("您输入的不是整数!" + x);
        }
        System.out.println("请输入浮点数:");
        if (scanner.hasNextFloat()) {
            f = scanner.nextFloat();
            System.out.println("您输入了浮点数为:" + f);
        } else {
            String x = scanner.next();
            System.out.println("您输入的不是浮点数!" + x);
        }
        scanner.close();
    }
}

运行结果
在这里插入图片描述
在这里插入图片描述

顺序结构

在这里插入图片描述

学习知识,结构,英文单词:structure

package com.smobell.www.structure;

public class Demo01 {
    public static void main(String[] args) {
        System.out.println("1");
        System.out.println("2");
        System.out.println("3");
        System.out.println("4");
        System.out.println("5");
    }
}

在这里插入图片描述

流程控制 if结构

package com.smobell.www.study_if;

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个文本:");
        String text = scanner.next();
        // if 单选择结构
        if (text.equals("smobee")) {
            System.out.println("确认过眼神,是我要找的人");
        } else {
            System.out.println("抱歉,您不是我要找的人");
        }
        // if 双选择结构
        System.out.println("请输入一个分数:");
        double score = scanner.nextDouble();
        if (score >= 60) {
            System.out.println("您的分数是及格的!");
        } else {
            System.out.println("您的分数是不及格!");
        }
        // if 多选择结构
        if (score >= 90) {
            System.out.println("您的分数等级是,甲");
        } else if (score >= 80) {
            System.out.println("您的分数等级是,乙");
        } else if (score >= 70) {
            System.out.println("您的分数等级是:丙");
        } else {
            System.out.println("您的分数等级是,丁");
        }
        // 嵌套的if结构
        if (score >= 60) {
            if (score >=99) {
                System.out.println("恭喜您,获得奖学金一份!");
            } else {
                System.out.println("很遗憾,您不符合奖学金资格!");
            }
        }
    }
}

在这里插入图片描述
在这里插入图片描述

流程控制 Switch选择结构

package com.smobell.www.study_switch;

public class Demo01 {
    public static void main(String[] args) {
        // 定义
        String name = "smobee";
        // JAVA JDK 7 以后才支持的字符串作为变量
        switch(name) {
            case "xmfboss":
                System.out.println("Hello xmfboss");
                break; // 不加break,则会继续执行下面的case
            case "smobee":
                System.out.println("Hello smobee");
                break; // 不加break,则会继续执行下面的case
            default:
                System.out.println("结束,没有匹配到");
        }
    }
}

解析源码,即反编译,,jdk7是如何支持字符串作为变量的,因为jdk7之前,你只能用数字来作为识别变量

在这里插入图片描述
在这里插入图片描述
我们打开这个路径之后,通过文件夹的方式,把他拷贝到现在的项目路径,然后再通过idea打开

演示
在这里插入图片描述
在这里插入图片描述
通过反编译之后,我们可以看到,是通过hasCode获得哈希码,然后再赋值给var3变量,再通过数字的形式

流程控制 while循环结构

在这里插入图片描述

计算1+2+…+100的结果

package com.smobell.www.study_while;

public class Demo01 {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        while (i<=100) {
            sum += i;
            i++;
            System.out.println("本次结果:" + sum);
        }
    }
}

流程控制 do…while循环结构

在这里插入图片描述

在执行while之前,会先执行一次do

package com.smobell.www.study_while;

public class Demo01 {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        while (i<=100) {
            sum += i;
            i++;
            System.out.println("本次结果:" + sum);
        }
        int b = 0;
        int sum2 = 0;
        do {
            sum2 += b;
            b++;
            System.out.println("还没开始计算前的sum值为:" + sum2);
        } while (b <= 100);
    }
}

流程控制 for循环结构

在这里插入图片描述

package com.smobell.www.study_for;

public class Demo01 {
    public static void main(String[] args) {
        // 死循环
        for (; ;) {
            System.out.println("hello");
        }
        // 计算1~100之间,偶数和,奇数和
        int evenNum = 0; // 偶数
        int oddNum = 0; // 奇数
        for (int i = 1; i <= 100; i++) {
            if (i%2 == 0) evenNum += i;
            if (i%2 != 0) oddNum += i;
        }
        System.out.println("偶数和:" + evenNum);
        System.out.println("奇数和:" + oddNum);
        // 计算1~1000,是5的倍数的,每行输出5个
        for (int i = 1; i <= 1000; i++) {
            if (i % 5 == 0) {
                if (i%(5*6) != 0) {
                    System.out.print(i + " ");
                } else {
                    System.out.println();
                }
            }
        }
    }
}

九九乘法表

在这里插入图片描述

package com.smobell.www.study_for;

public class Demo02 {
    public static void main(String[] args) {
        // 外层,代表每一行
        for (int i = 0; i <= 9; i++) {
            // 内层,代表每个算法
            for (int j = 1; j <= i; j++) {
                System.out.print(j + "*" + i + "=" + i*j + "\t");
            }
            System.out.println();
        }
    }
}

增强型for循环

package com.smobell.www.study_for;

public class Demo03 {
    public static void main(String[] args) {
        int[] number = {1,2,3,4,5,6,7,8,9,10};
        // 普通for循环
        for (int i = 0; i < number.length; i++) {
            System.out.println(number[i]);
        }
        // 增强型for循环
        for(int x:number) {
            System.out.println(x);
        }
    }
}

同样会输出

1
2
3
4
5
6
7
8
9
10

break 和 continue

package com.smobell.www.study_for;

public class Demo04 {
    public static void main(String[] args) {
        // break
        for (int i = 0; i < 10; i++) {
            // i 等于5的时候,结束
            if (i == 5) break;
            System.out.print(i + " ");
        }
        System.out.println();
        // continue i 是偶数,跳过
        for (int i = 0; i < 10; i++) {
            if (i % 2 == 0) continue;
            System.out.print(i + " ");
        }
    }
}

运行结果

在这里插入图片描述

打印三角形

package com.smobell.www.study_for;

public class Demo05 {
    public static void main(String[] args) {
        // 外层,打印五行
        for (int i = 1; i <= 5; i++) {
            // 先打印空白的
            for (int j = 5; j >= i; j--) {
                System.out.print(" ");
            }
            // 打印,三角形左侧
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            // 打印,三角形右侧
            for (int j = 1; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

运行结果

在这里插入图片描述


更新日志

提示:将会持续优化更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值