「Java案例」输出最大的数及其出现的次数
案例解析
基础实现案例
编写一个程序,输入1个整数,如果该整数不是0,则继续输入,直到输入0时为止。查找这一组数中最大的数,并输出最大的数出现的次数。如果输入的第一个数为0,就输出:“Only 0 is inputed”。
# 源文件保存为“FindMaxAndCount.java”
import java.util.Scanner;public class FindMaxAndCount {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入整数(输入0结束):");int firstNum = scanner.nextInt();if (firstNum == 0) {System.out.println("Only 0 is inputed");return;}int max = firstNum;int count = 1;while (true) {int num = scanner.nextInt();if (num == 0) {break;}if (num > max) {max = num;count = 1;} else if (num == max) {count++;}}System.out.println("最大的数是: " + max);System.out.println("它出现的次数是: " + count);}
}
运行结果
直接输入数字0
请输入整数(输入0结束):0
Only 0 is inputed
输入一系列数字,以0结束
请输入整数(输入0结束):5
4
5
2
0
最大的数是: 5
它出现的次数是: 2
代码解析:
- 先用Scanner获取第一个输入的数字
- 如果第一个数就是0,直接输出提示信息并结束程序
- 初始化max为第一个数,count初始化为1
- 进入无限循环,不断读取输入的数字
- 遇到0就跳出循环
- 每次遇到比当前max更大的数,就更新max并重置count
- 遇到和max相等的数,count加1
- 最后输出结果
这个程序能正确处理各种情况,包括所有数都相同、第一个数就是最大的、或者后面出现更大的数等情况。
找出最小数及其出现次数
稍微修改一下就能实现找最小数的功能:
# 源文件保存为“FindMinAndCount.java”
import java.util.Scanner;public class FindMinAndCount {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入整数(输入0结束):");int firstNum = scanner.nextInt(