02 JAVA流程控制

langQ / 2024-03-21 / 原文

02 JAVA流程控制

1.用户交互Scanner

nextline()用的多,next()用的少。
nextline()以回车为结束符。也就是说:nextline方法返回的是回车之前的所有字符。可以获得空白。

package com.mysoft.scanner;

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
        //创建一个扫描器对象,由于接收键盘数据
        Scanner scanner = new Scanner(System.in);

        System.out.println("使用next方式接收:");

        //判断用户有没有输入字符串
        if (scanner.hasNextLine()) {
            //使用next方式接收
            String str = scanner.nextLine();
            System.out.println("输出的内容为:" +str);
        }

        //凡是属于IO留的类,如果不关闭会一直占用资源。要养成好习惯用完就关掉
        scanner.close();
    }
}

简化写法:

package com.mysoft.scanner;

import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {
        //从键盘接收数据
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入数据:");
        String str = scanner.nextLine();
        System.out.println("输出的内容为:" +str);

        scanner.close();
    }
}

实现一个机能,如下:
我们输入多个数字,并求其总和与平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并输入执行结果

package com.mysoft.scanner;

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
        //我们输入多个数字,并求其总和与平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并输入执行结果
        Scanner scanner = new Scanner(System.in);

        //和
        double sum = 0;
        //计算输入了多少个数字
        int m=0;

        while (scanner.hasNextDouble()) {
            double x = scanner.nextDouble();
            m=m+1;
            sum = sum + x;
            System.out.println("你输入了第" + m + "个数据,然后当前结果sum=" + sum);
        }

        System.out.println(m +"个数的和为" + sum);
        System.out.println(m +"个数的平均值为" + (sum/m));

        scanner.close();
    }
}

输入结果可以如下这样:

10
你输入了第1个数据,然后当前结果sum=10.0
20
你输入了第2个数据,然后当前结果sum=30.0
30
你输入了第3个数据,然后当前结果sum=60.0
40
你输入了第4个数据,然后当前结果sum=100.0
aaa
4个数的和为100.0
4个数的平均值为25.0

2.顺序结构

3.选择结构

if

package com.mysoft.scanner;

import java.util.Scanner;

public class IfDemo01 {
    public static void main(String[] args) {
        //考试分数大于60就是及格,小于60就是不及格
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入成绩:");
        int score = scanner.nextInt();

        if (score >= 60) {
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }

        scanner.close();
    }
}

SWITCH多选择结构

break 穿透
switch 匹配一个具体的值。
从JavaSE 7开始,switch支持字符串String类型了。

IDEA也可以反编译看class文件的内容。

package com.mysoft.scanner;
public class SwitchDemo01 {
    public static void main(String[] args) {
        String name = "朵拉";
        //JDK7的新特性,表达式结果可以是字符串!!!
        //字符的本质还是数字
        
        //反编译 java-----class(字节码文件)-----反编译(IDEA)
        switch (name) {
            case "朵拉":
                System.out.println("朵拉A梦");
                break;
            case "机器猫":
                System.out.println("机器猫");
                break;
            default:
                System.out.println("龙猫");
                break;
        }
    }
}

4.循环结构

5.break和 continue