日期:2014-05-20  浏览次数:20903 次

if 与else if 的区别
for(int i=0;i<ch.length;i++)
{
if(ch[i]>=65 && ch[i]<=90)
{
ch[i]=(char)(ch[i]+32);
}
else if(ch[i]>=97 && ch[i]<=122)
{
ch[i]=(char)(ch[i]-32);
}
}
奇怪的事情发生了,当我把else 去掉是,大写字母就不能就实现不了转换功能,小写还行
  当我把else加上时就行了,急求为什么
------解决方案--------------------
如果是if, else if,那么如果进入第一个if的话,else if 就不执行了。
如果是if,if,那么每一个if都要判断
------解决方案--------------------
因为前一个if满足if(ch[i]>=65 && ch[i]<=90),转化成小写.接下来又一个if(ch[i]>=97 && ch[i]<=122),已经转成小写后满足,又转回了大写。如果if...else if则不会出现这情况。可以写个输出语句看下