Java 入门练习(6 - 10)

143 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第 26 天,点击查看活动详情

文章首发地址:村雨遥

JAVA6 判断体重指数

描述

体重指数 = 体重 (kg) / ( 身高 (m) × 身高 (m) ),小于18.5属于偏瘦,介于18.5和20.9之间(左闭右开)属于苗条,介于20.9和24.9之间(左闭右闭)属于适中,超过24.9属于偏胖。下面由你来编写一段逻辑,算出输入了身高和体重的用户的体重指数,并返回他们的身材状态。(体重指数请使用double类型)

输入描述:

用户的身高(m)和用户的体重(kg)

输出描述:

体重指数代表的用户身材状态

示例1

输入:

1.75 62.5

输出:

苗条

示例2

输入:

1.5 40

输出:

偏瘦

示例3

输入:

1.85 80

输出:

适中

示例4

输入:

2 100

输出:

偏胖

解答

首先计算出体重指数 bim = weight / height / height,然后再用条件语句找出对应区间即可。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double height = scanner.nextDouble();
        double weight = scanner.nextDouble();

        double ibm = weight / height / height;

        if (ibm > 24.9) {
            System.out.print("偏胖");
        } else if (ibm >= 20.9) {
            System.out.print("适中");
        } else if (ibm >= 18.5) {
            System.out.print("苗条");
        } else {
            System.out.print("偏瘦");
        }
    }
}

JAVA7 判断学生成绩等级

描述

现有如下成绩等级A,B,C,D。其中A代表优秀,B代表良好,C代表及格,D代表不及格。现在请你来为学生的成绩进行分级,如果用户输入错误则输出未知等级。

输入描述

成绩等级对应的中文表述

输出描述

优秀,良好,及格,不及格,未知等级

示例1

输入:

A

输出:

优秀

示例2

输入:

B

输出:

良好

示例3

输入:

C

输出:

及格

示例4

输入:

D

输出:

不及格

示例5

输入:

E

输出:

未知等级

解答

可以使用 switch 来匹配对应成绩等级,但是需要注意的是 switch 用来 String 需要 Java 8 及之后才行,否则可能会出错。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String grade = scanner.next();
        switch (grade) {
            case "A":
                System.out.println("优秀");
                break;
            case "B":
                System.out.println("良好");
                break;
            case "C":
                System.out.println("及格");
                break;
            case "D":
                System.out.println("不及格");
                break;
            default:
                System.out.println("未知等级");
                break;
        }
    }
}

JAVA8 邮箱验证

描述

请根据给出的正则表达式来验证邮箱格式是否合法,如果用户输入的格式合法则输出「邮箱格式合法」,否则输出「邮箱格式不合法」。

输入描述

任意字符串

输出描述

根据输入的邮箱格式判断其合法于不合法,若输入字符串符合邮箱格式则输出邮箱格式合法,否则输出邮箱格式不合法

示例1

输入:

123123@nowcoder.com

输出:

邮箱格式合法

示例2

输入:

123123

输出:

邮箱格式不合法

解答

利用 Stringmatches() 方法来讲输入的字符串和正则表达式进行匹配,然后根据匹配后的结果输出对应结果。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        String emailMatcher = "[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+";

        if (str.matches(emailMatcher)) {
            System.out.println("邮箱格式合法");
        } else {
            System.out.println("邮箱格式不合法");
        }
    }
}

JAVA9 数列求和

描述

有数列为:9,99,999,...,9999999999。要求使用程序计算此数列的和,并在控制台输出结果。(请尝试使用循环的方式生成这个数列并同时在循环中求和)

输入描述

输出描述

将该数列的和直接输出

解答

假设数列第一个数为 a1=9a_1 = 9,那么后续递推公式 ai=ai110+9a_i = a_{i-1} * 10 + 9,然后利用循环求和即可。

public class Main {
    public static void main(String[] args) {
        long sum = 0;
        long num = 9;
        for (int i = 0; i < 10; i++) {
            sum += num;
            num = num * 10 + 9;
        }
        System.out.println(sum);
    }
}

JAVA10 统计输入正数个数

描述

控制台输入整数,请设计一个死循环,当用户输入非正数时停止输入。请给出用户输入的正整数个数(默认输入个数不超过 2147483647)

输入描述

若干整数,整数之间用空格隔开

输出描述

控制台输入的正整数个数

示例1

输入:

1 2 3 4 5 6 7 0

输出:

7

解答

要设计一个死循环,那么可以使用 while 语句,此外,要统计正整数个数,则利用 count 进行叠加即可。

import java.util.*;

public class Main {
    public static void main(String[] args) {
        int count = 0;
        Scanner scanner = new Scanner(System.in);

        while (scanner.nextInt() > 0) {
            count++;
        }
        System.out.println(count);
    }
}