红联Linux门户
Linux帮助

JAVA学习小节……循环中的思考和条件

发布时间:2006-10-28 00:54:03来源:红联作者:pkncoin
用过JAVA循环的朋友都知道,while(条件),do....while(条件)
还有for(a;b;c)这三种。我就初学后的一点感觉,来聊聊。
用最常用的While循环来说吧。请看如相的例子:


public class Loop
{
public static void main(String args[])
{
int num=1;
while(num<10)
{

num++;
}
System.out.println(num);
}
}


一开始我接触时总感觉'昏',什么i++,++i之类的,那我们应该
怎样做呢。我想通过JDK的调试来加深理解是最好不过的了。
就上面的小例子,首先当while循环结束时,num一定是为10的时,
其它的我们先不要考虑,什么num++有几次啊之类的,更不要班手数
一下,几次几次。(我曾经这样做过,也许你会笑)我们先放弃循
环体的内容先不管它。这样一来,就简单多了,当num为10的时候,
也就是num++为10的时候(在循环体内,这一点一定要明确),那么
num++是10,num其实只为9,即循环体运行的次数。这样一来,是不是
就好理解了,虽然在system.out.println中输出的num为10但,实际
while循环只运行了九次。好了,这样也能很好的理解do....while(条件)
还有for(a;b;c)里的东西了。
理解循环就是理解它的变量的条件num<10以及变量的变化num++,
的因果关系,如果能看清楚了,再怎么'转'也就不会'昏'了,你说是吗?

条件语句作为重要的语句判断,作用是不言而喻的吧,java在这
方面也体现了'人性化'的思考,不过,对于我们这些'菜鸟'来说,java
你好是好,就是太好了,我理解不了,嘻嘻,不急,不急,现在我就
java的条件判断中三个不好理解的'开关'(^;||;&&),谈谈自己的理解;
首先我们要清楚的明白它们的定义。

a^b:在java里^叫异或判断,它的意思是:当a,b中只有一个为真时,运算
结果才为真,其内涵就在于,条件两边只有一为真时结果才为真,那你必须对
a和b条件都要进行判断才知道真不真。请看下面例子:


public class x
{
public static void main(String args[])
{
int i=5;
int j=4;
if((i++)>j^(j--)>i)
System.out.println("if中的运行的i,j"+"\n"+"i="+i+"\n"+"j="+j);
else

System.out.println("else中的i,j"+"\n"+"i="+i+"\n"+"j="+j);
}
}


输出为:if中运行的i,j
i=6
j=3

a&&b:在java里叫简洁与:它的意思是:当a和b都为真时,条件为真;其内涵
在于,如果条件a为假是,那就用不着进行b的判断了,直接运行if后的语句;也就
根本不去想b条件是不是真假了,这点很像我们的一般思维;
请看下面的例子,证明:


public class x
{
public static void main(String args[])
{
int i=5;
int j=5;
if((i++)>j&&(j--)>i)
System.out.println("if中的运行的i,j"+"\n"+"i="+i+"\n"+"j="+j);
else

System.out.println("else中运行的i,j"+"\n"+"i="+i+"\n"+"j="+j);
}
}


输出为:else中运行的i,j
i=5
j=5
我们可以发现,j依然是5并没进行j--运算,这就是&&开关的作用;
还要注意的一点是,这里的判断运算先后顺序是先++i,再进行<;>;==的比较
最后进行i--运算;即在(i++)里先进行i>j的比较,然后进行i++运算,我们
虽然看到了有()号但java在这里却是这样理解的,不相信你就用jdk试试;
下面这个例子,只把i++变成了++i,j--变以++j,结果大不一样;


public class x
{
public static void main(String args[])
{
int i=5;
int j=5;
if((++i)>j&&(++j)>--i)
System.out.println("if中的运行的i,j"+"\n"+"i="+i+"\n"+"j="+j);
else

System.out.println("else中运行的i,j"+"\n"+"i="+i+"\n"+"j="+j);
}
}


结果为:else中运行的i,j
i=6
j=4

a||b:在java里叫简洁或:它的意思是:当a和b都为假时,条件为假;其内涵
在于,如果条件a为真是,那就用不着进行b的判断了,直接运行if中的判断的语句。
请看下面的这个


public class x
{
public static void main(String args[])
{
int i=5;
int j=5;
if((++i)>j||(++j)>--i)
System.out.println("if中的运行的i,j"+"\n"+"i="+i+"\n"+"j="+j);
else

System.out.println("else中运行的i,j"+"\n"+"i="+i+"\n"+"j="+j);
}
}


结果为:if中运行的i,j
i=6
j=5
它的运行规则同&&一样,这里就不重复了。
最后,谢谢你阅读我的java学习小节……希望能和你一起进步;
文章评论

共有 2 条评论

  1. 红联哨兵 于 2009-11-04 21:08:06发表:

    呵呵,帖子很老了哈。:0w5ty(1

  2. wangyaju1988 于 2009-07-24 23:17:00发表:

    呵呵 大家一起学习 一起进步