【002】使用if或者switch(思路)写一个程序,输出类似01:02:60的时间格式?
问题描述:
需要判断输入的数字是否符合实际情况,比如小时数就不能大于24,如果大于24就提示输入错误;分钟数和秒数不能大于60,如果大于60就提示输入错误,最重要的是输出类似的格式必须为:01:02:60的时间格式?。
一、【002】使用if或者switch(思路)写一个程序,输出类似01:02:60的时间格式??
##1.引入库
import java.util.Scanner;
public class eight {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("获取一个时间小时部分整数:");
int num1 = input.nextInt();
System.out.println("获取一个时间分钟部分整数:");
int num2 = input.nextInt();
System.out.println("获取一个时间秒钟部分整数:");
int num3 = input.nextInt();
if ((num1 >= 0 && num1 <= 24) && (num2 >= 0 && num2 <= 60)
&& (num3 >= 0 && num3 <= 60)) {
if (num1 < 10 && num2 >= 10 && num3 >= 10)
System.out.println("该输入的时间整数为:" + "0" + num1 + ":" + num2 + ":"
+ num3);
else if (num1 >= 10 && num2 < 10 && num3 >= 10)
System.out.println("该输入的时间整数为:" + num1 + ":" + "0" + num2 + ":"
+ num3);
else if (num1 >= 10 && num2 >= 10 && num3 < 10)
System.out.println("该输入的时间整数为:" + "0" + num1 + ":" + num2 + ":"
+ "0" + num3);
else if (num1 < 10 && num2 < 10 && num3 >= 10)
System.out.println("该输入的时间整数为:" + "0" + num1 + ":" + "0" + num2
+ ":" + num3);
else if (num1 < 10 && num2 >= 10 && num3 < 10)
System.out.println("该输入的时间整数为:" + "0" + num1 + ":" + num2 + ":"
+ "0" + num3);
else if (num1 >= 10 && num2 < 10 && num3 < 10)
System.out.println("该输入的时间整数为:" + num1 + ":" + "0" + num2 + ":"
+ "0" + num3);
else if (num1 < 10 && num2 < 10 && num3 < 10)
System.out.println("该输入的时间整数为:" + "0" + num1 + ":" + "0" + num2
+ ":" + "0" + num3);
else {
System.out.println("该输入的时间整数为:" + num1 + ":" + num2 + ":"
+ num3);
}
} else {
System.out.println("数字不符合实际情况");
}
}
}
二、 实现思路:
1.调用Scanner类获取一时间的小时,分钟和秒;
2.使用if语句进行判断小时,分钟和秒是否符合事实情况;
3.然后例如:时间为05.10.10这种情况,但是输出的时候是5.10.10为了满足此显示情况使用if…else进行判断每种单独判断,在每个情况下输出前加上+"0"即可;
4.当然因为有具体值,也可以使用switch,同样也可以实现,就是将小时(前边已经判断其健壮性了,即符合事实小时小于等于24大于等于1小时)、分钟、秒分别建立switch,然后利用case穿透,减少代码量;
5.本人更想用if实现,因为具有逻辑性,简单,如果switch做不出来,可以私信我帮你写哦。
有问题可底下下评论会及时回复!!!