
题目要求:当输入的年龄小于0,则提示年龄不能小0,需要重新输入直到满足条件为止。
那么我们可以设置一个while循环,如果数据小于0,则需要不断输入:
while (a<0) { //如果输入的年龄小于0,进行循环重新输入,直到大于0。
System.out.println("输入的学生年龄不能小于0,请重新输入:")
a = sca.nextInt()
}
源程序:
源程序
程序运行结果,如果正确输入:
正确输入结果
如果中间有错误输入,例12岁输入了-12:
错误输入-12结果
输入-12后,如果再次不小心错误输入-12,则还需要接着输入直到大于0:
错误输入2次,则循环直到满足条件。
import java.util.Calendarimport java.util.Date
import java.awt.*
import java.awt.event.*
import java.text.NumberFormat
public class H {
public static void main(String args[]) {
new Time("年龄计算器")
}
}
class Time extends Frame implements ActionListener {
Calendar calendar
Button button
TextField t1, t2, t3
Label l, l1, l2, l3
Time(String s) {
super(s)
setLayout(new FlowLayout())
button = new Button("确定")
button.addActionListener(this)
t1 = new TextField(2)
t2 = new TextField(2)
t3 = new TextField(2)
l = new Label("请输入您的生日 ")
l.setBackground(Color.cyan)
l1 = new Label("年")
l2 = new Label("月")
l3 = new Label("日")
add(l)
add(t1)
add(l1)
add(t2)
add(l2)
add(t3)
add(l3)
add(button)
setBounds(100, 100, 280, 100)
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0)
}
})
setVisible(true)
validate()
}
public void actionPerformed(ActionEvent e) {
calendar = Calendar.getInstance()
calendar.setTime(new Date())
NumberFormat f = NumberFormat.getInstance()
long time = calendar.getTimeInMillis()
if (e.getSource() == button) {
try {
int n = Integer.parseInt(t1.getText())
int y = Integer.parseInt(t2.getText())
int r = Integer.parseInt(t3.getText())
calendar.set(n, y - 1, r)
double time1 = calendar.getTimeInMillis()
double c = (time - time1) / (1000 * 60 * 60 * 24)
double d = c/365
f.setMaximumFractionDigits(2)
String s = f.format(d)
l.setText("您的年龄约为" + s + " 岁")
} catch (NumberFormatException ee) {
l.setText("请正确输入")
}
}
}
}
功底浅薄,如果有问题,还望指教。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)