Java程序实现循环从盘输入学生的年龄+(1)当输入的年龄小于0则提示年龄不能小?

Java程序实现循环从盘输入学生的年龄+(1)当输入的年龄小于0则提示年龄不能小?,第1张

题目要求:当输入的年龄小于0,则提示年龄不能小0,需要重新输入直到满足条件为止。

那么我们可以设置一个while循环,如果数据小于0,则需要不断输入:

while (a<0)  { //如果输入的年龄小于0,进行循环重新输入,直到大于0。

                 System.out.println("输入的学生年龄不能小于0,请重新输入:")

                 a = sca.nextInt()

                }

源程序:

源程序

程序运行结果,如果正确输入:

正确输入结果

如果中间有错误输入,例12岁输入了-12:

错误输入-12结果

输入-12后,如果再次不小心错误输入-12,则还需要接着输入直到大于0:

错误输入2次,则循环直到满足条件。

实现步骤:

1、获取当前时间

2、判断出生日期是否小于当前时间,如果大于,则引发一场

3、从当前时间中取出年、月、日;从出生日期中取出年、月、日,年份相减

4、然后做具体判断

示例代码如下:

public static int getAge(Date birthDay) throws Exception { 

        //获取当前系统时间

        Calendar cal = Calendar.getInstance() 

        //如果出生日期大于当前时间,则抛出异常

        if (cal.before(birthDay)) { 

            throw new IllegalArgumentException( 

                "The birthDay is before Now.It's unbelievable!") 

        } 

        //取出系统当前时间的年、月、日部分

        int yearNow = cal.get(Calendar.YEAR) 

        int monthNow = cal.get(Calendar.MONTH) 

        int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH) 

        

        //将日期设置为出生日期

        cal.setTime(birthDay) 

        //取出出生日期的年、月、日部分  

        int yearBirth = cal.get(Calendar.YEAR) 

        int monthBirth = cal.get(Calendar.MONTH) 

        int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH) 

        //当前年份与出生年份相减,初步计算年龄

        int age = yearNow - yearBirth 

        //当前月份与出生日期的月份相比,如果月份小于出生月份,则年龄上减1,表示不满多少周岁

        if (monthNow <= monthBirth) { 

            //如果月份相等,在比较日期,如果当前日,小于出生日,也减1,表示不满多少周岁

            if (monthNow == monthBirth) { 

                if (dayOfMonthNow < dayOfMonthBirth) age-- 

            }else{ 

                age-- 

            } 

        } 

        System.out.println("age:"+age) 

        return age 

    }

class Student {

int age

String name

int number

Student(int a,String s,int n)

{

age=a

name=s

number=n

}

int getAge()

{

return age

}

int getNumber()

{

return number

}

String getName()

{

return name

}

void 修改年龄(int age1)

{

age=age1

}

int 获得年龄()

{

return age

}

}

public class StudentText {

public static void main(String args[])

{

Student student = new Student(20,"xx",35)

System.out.println("姓名: "+student.getName())

System.out.println("年龄: "+student.getAge())

System.out.println("学号: "+student.getNumber())

student.修改年龄(25)

System.out.println("修改年龄: "+student.获得年龄())

}

}

/*

*答案: 姓名: xx

年龄: 20

学号: 35

修改年龄: 25

*/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11572220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存