我创建了一个class Student
属性:rno, age, name, course
,我已经定义了一个参数化的构造函数。我希望在age
不在15和21之间时抛出异常。我已将age
初始化为27,但它不会进入if条件。你知道为什么会这样吗?
class Age extends Exception
{
Age(String str)
{
super(str);
}
}
public class Student
{
int rno,age;
String name,course;
Student(int r,int a,String n,String c)
{
rno=r;
age=a;
name=n;
course=c;
}
public void display()
{
try
{
if(age<=15 && age>=21)
throw new Age("Not accepted");
else
System.out.println("Name:"+name);
System.out.println("Rno:"+rno);
System.out.println("Age:"+age);
System.out.println("Course:"+course);
System.out.println("...........");
}
catch(Age a)
{
System.out.println(""+a);
}
}
public static void main(String args[])
{
Student s1=new Student(1,26,"ABC","Java");
Student s2=new Student(2,17,"XYZ","C++");
s1.display();
s2.display();
}
}
Output
Name:ABC
Rno:1
Age:26
Course:Java
...........
Name:XYZ
Rno:2
Age:17
Course:C++
...........
答案 0 :(得分:5)
问题在于陈述if(age<=15 && age>=21)
- 年龄将永远不会低于15且大于21。
你有&&
这意味着在bool逻辑中,你需要将它改为||
,这意味着OR。
答案 1 :(得分:2)
if(age<=15 || age>=21)
这应该是此条件检查中的陈述。因为这两种情况在任何情况下都不成立。