帮忙看个java题,这个count输出是0,为什么?

class test3
{
public static void main(String args[])
{
int count=0;
for (int i=0;i<=100;i++)
count=count++;
System.out.println(count);
}

}

你直接用count++,肯定能得到结果了。
至于为什么会等于0,我和你解释下
你这里相当于
count=(count++);
这个不知道你清楚不?因为++优先集高
count++和++count楼主可以区别开吗?
count++值=0,++count=1;
所以你的count一直等于0.。。。。追问

晕死,count++值怎么可能=0

追答

呵呵。这是前加和后加的问题了
count++后加,先取值再加1
比如
int count=0;
int a=count++;
这是a=0;
++count 前加,先加后取值
int count=0;
int a=++count;
这时a=1

其实前加,后加,我是这样记的。加号在前,先加后取值,加号在后,先取值再加

如果细 了讲
第一例子后
a=0
count=1
第二个例子后
a=1
count=1

追问

你没看清题、count=count++在for循环里面!

追答

呵呵。我看清楚了。我说的这个例子只是为了举例说明。
道理是一样的。

你的相当 于count=(count++);
你只要明白count++等于多少就明白了
要不你这样更直观
你在for外面定义一个
int a=0;
然后在for结束后输出
a 和count。

补充完整
int count=0;
int a=0;
for (int i=0;i<=100;i++)
a=count++;

System.out.println(a);
System.out.println(count);
你去看看结果吧,估计你绕晕了
你会发现一个是100,一个101

而count=count++;
第一次count++的值为0,所以count=0
第二次循环第一次结果。。
希望楼主慢慢体会下

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-15
对 一直都是0的 因为 你的那个语句
count=count++ 的意思就是 count=count,然后 再count+1
所以 你最后那个count 的值和最前面那个赋值count=0 是一样的
第2个回答  2011-09-16
<%
ArrayList list= (ArrayList)session.getAttribute("listArrayList");
for(int i = (pageNow - 1) * pageSize ; i < ((pageNow * pageSize) > allItem ? allItem : (pageNow * pageSize)) ; i++)
{
for(int j=0;j<list.size();j=j+8)
{
String title=(String)list.get(j);
String author=(String)list.get(j+1);
String keywords=(String)list.get(j+2);
String kind=(String)list.get(j+3);
String url=(String)list.get(j+4);
String date=(String)list.get(j+5);
String describer=(String)list.get(j+6);
String publisher=(String)list.get(j+7);
%>
简单看了下你的程序,发现你第一个for循环应该是错了,改了再试试吧
for(int i = (pageNow - 1) * pageSize ; i < ((pageNow * pageSize) > allItem ? allItem : (pageNow * pageSize)) ; i++)
这里最后的i++应该改成i=i+pageSize;
因为看你的程序,你是想跟据页号不同来显示,可是第一页时i=0,第二页时i应该从10开始循环,可是你i++后,i就从1开始了循环
看看这样改对不对

PS:再说说你的程序为什么会出现第6项开始出现重复
你的list中应该有5组记录吧,也就是40项,因为你第一个for循环错误,所以当pageNow=1时,i < ((pageNow * pageSize) > allItem ? allItem : (pageNow * pageSize))相当于i<5==true,所以执行第2个for循环,输出了前40项,即前5条记录;然后i++,i=1,又把前40项输出了一遍,直到输出5遍位置(tiao里存的应该是几组记录吧),不知道你的页面显示是重复了几遍,如果是5遍的话,应该是这种情况
第3个回答  2011-09-15
那是因为后自加啊!改为count=++count就正常了.后自加是先赋值再自加。
第4个回答  2011-09-15
count=count++; 这句是先赋值再加1,也不会是0呀,你实际运行没?
相似回答