超级奇怪的问题???不信看看(7分)

  • 主题发起人 主题发起人 ff_ff
  • 开始时间 开始时间
F

ff_ff

Unregistered / Unconfirmed
GUEST, unregistred user!
public class Student1
{
private int age;
public void setAge(int s_age)
{
if (s_age<10)
{
age=10;
}
if (s_age>100)
{
age=100;
}
else
{age=s_age;}
}
public int getAge()
{
return age;
}
}
class Student1Test
{
public static void main(String[]args)
{
Student1 a =new Student1();
// a.setAge(110);
a.setAge(9);
// a.setAge(56);
System.out.println(a.getAge());

}
}
就是这段代码setAge(9)了,可是出来结果是9(我认为应该是10),如果setAge(110)出来结果就是100;
谁告诉俺是怎么回事?
 
else
跟最近的if匹配,大哥这个也忘了呀???
 
俺也看出来了,为啥呀,不匹配不行吗?
 
在第一个IF里加名结束函数的语句就行了,我好久没看C了,忘了
 
用switch case吧
 
当setAge(9)时执行如下:if (s_age<10)
{
age=10;
}//此时 age=10
if (s_age>100)//9<100所以不满足此条件执行else
{
age=100;
}
else
{age=s_age;}//执行else
所以age=9
明白了吧!
 
这是有关程序执行顺序的问题;我帮你解释下
a.setAge(9);->
调用 student1中的 setAge(int s_age)//这时setAge=9
{
if (s_age<10)//因为9<10
{
age=10;//执行这时age为10
}
——————————————————————————————
if (s_age>100)不满足条件,不执行,执行else
语句
{
age=100;
}
else
{age=s_age;}//执行age=s_age=9;
———————————————————————————————
}
你F7单步执行下,看是不是这样执行的,else
跟最近的if匹配;
你如果想结果为10,可以这样写
student1中的 setAge(int s_age)
{
if (s_age<10)
{
age=10;
}
else

——————————————————————————————
if (s_age>100)
{
age=100;
}
else
{age=s_age}
}
 
lsql,大哥,这是JAVA啊.not c but like c
java里面大括号后面都不跟;是吧?
 
rqj大哥说得对,不过,我这里是用jdk+EmEditor,不能单步调,jbuider中应可以,我试试
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
658
import
I
I
回复
0
查看
719
import
I
I
回复
0
查看
843
import
I
后退
顶部