⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java_plus_minus.htm

📁 写给JSP初级程序员的书
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html>
<!-- #BeginTemplate "/Templates/more.dwt" --> 
<head>
<!-- #BeginEditable "doctitle" --> 
<title>csdn_JAVA中:关于++和--</title>
<!-- #EndEditable --> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<STYLE type=text/css>
A:link {
	COLOR: #000000; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:visited {
	COLOR: #333399; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:active {
	COLOR: #ff0000; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:hover {
	COLOR: black; TEXT-DECORATION: underline
}
BODY {
	 COLOR: #000000; FONT-SIZE:9pt; LETTER-SPACING: normal; LINE-HEIGHT: 150%; WORD-SPACING: 2em
}
TH {
	FONT-SIZE: 9pt
}
TD {
	FONT-SIZE: 9pt
}
TD.page {
	COLOR: #000000; FONT-SIZE:9pt; LETTER-SPACING: normal; LINE-HEIGHT: 150%; WORD-SPACING: 2em
}
TD.title {
	COLOR: #000000; FONT-FAMILY:verdana,宋体,新宋体
}
TD.detail {
	COLOR: #9966ff; FONT-FAMILY:verdana,宋体,新宋体
}
</STYLE>

</head>
<body bgcolor="#FFFFFF" text="#000000" >
<div align="center"></div>
<table width="700" border="0" align="center">
  <tr> 
    <table width="700" border="1" cellpadding="1" cellspacing="0" bordercolorlight="#9898ba" bordercolordark="#000000">
        
      </table>
      <table width="700" cellspacing="0" cellpadding="0" bgcolor="9898ba" border="0">
        <tr valign="middle"></tr>
      </table>
      <div align="center"><b></div>
      <table width="700" border="0" cellspacing="0" cellpadding="0" bgcolor="eff3f9">
        <tr></tr>
      </table>
      <br>
      <table width="700" border="0">
        <tr> 
          <td width="20">&nbsp;</td>
          <td colspan="2"> 
            <div align="center"> 
              <h3><b><!-- #BeginEditable "5" --><font face="Verdana, Arial, Helvetica, sans-serif" >JAVA中:关于++和--</font><!-- #EndEditable --></b></h3>
            </div>
          </td>
          <td width="20">&nbsp;</td>
        </tr>
        <tr> 
          <td width="20">&nbsp;</td>
          <td  colspan="2"><!-- #BeginEditable "6" -->对于++和--这两个运算符,c/c++语言和java语言有着截然不同的结果。大家可以测试一下。看看下面的程序:<br>
            <br>
            …… <br>
            public static void main(java.lang.String[] args) { <br>
            <br>
            int k=0; <br>
            k=k++; <br>
            System.out.println(&quot;the first k=&quot;+k);//0???? <br>
            k++; <br>
            System.out.println(&quot;the second k=&quot;+k); <br>
            ///////////////////////////////////////////// <br>
            int x=0,y=0; <br>
            y=x++; <br>
            System.out.println(&quot;the first x=&quot;+x); <br>
            System.out.println(&quot;the first y=&quot;+y); <br>
            x++; <br>
            System.out.println(&quot;the first x=&quot;+x); <br>
            } <br>
            ……<br>
            在c/c++中,上述程序的输出结果为:<br>
            the first k=1<br>
            the second k=2<br>
            the first x=1<br>
            the first y=1<br>
            the second x=2<br>
            而在java中结果则大出所有人的意料,结果为:<br>
            the first k=0 <br>
            the second k=1 <br>
            the first x=1 <br>
            the first y=0 <br>
            the first x=2 <br>
            为什么呢?下面看看网友们的解答,从中我们可以看看大家对这个问题的理解:<br>
            <font color="#0000FF"><br>
            【发言1:】</font><br>
            k=k++; // 等价于:k=k ; k=k+1; 
            <p>y=x++; // 等价于:y=x ; x=x+1; </p>
            <p>System.out.println(--j); // 等价于:System.out.println( j ); j=j+1; 
            </p>
            <p>while(i--&gt;0){ ... //等价于 :while(i&gt;0) { i=i+1; ..... </p>
            <p>这是和 c 一样的基本语法 <br>
              <br>
              <font color="#0000FF">【发言2:】</font><br>
              k=k++; // 等价于:k=k ; k=k+1; <br>
              y=x++; // 等价于:y=x ; x=x+1; <br>
              System.out.println(--j); // 等价于:System.out.println( j ); j=j-1; 
              <br>
              while(i--&gt;0){ ... //等价于 :while(i&gt;0) { i=i-1; ..... <br>
              <br>
              <font color="#0000FF">【发言3:】</font><br>
              不对,不对 <br>
              显然当 k = k ++时,k++没有作用,只相当于k=k !!! <br>
              java怎么会这么处理呢? 值得研究一下! <br>
              <br>
              <font color="#0000FF">【发言4:】</font><br>
              据同事说在c语言里,以下几句的输出结果: <br>
              …… <br>
              int k=0; <br>
              k=k++; <br>
              System.out.println(&quot;the first k=&quot;+k);//0???? <br>
              k++; <br>
              System.out.println(&quot;the second k=&quot;+k); <br>
              …… <br>
              结果: <br>
              the first k=1 <br>
              the second k=1 <br>
              这个结果比较好理解一点,可是java中的就不知道该如何理解了。 <br>
              <br>
              <font color="#0000FF">【发言5:】</font><br>
              java里面好象k=k++就等于k=k。 </p>
            <p><font color="#0000FF">【发言6:】</font><br>
              k=k++ <br>
              对于++这种表达式,并没有规定++运算是发生在哪一个时刻的,只规定是在取K值之后运算结束之前。我想现在是这样: <br>
              首先取出K的值,此时为0,然后执行++运算,这时K=1,然后再执行=运算,将刚才取出的值“0”赋给K,相当于K=0。 <br>
              所以运算结束后K应该为0 <br>
              出现这样的结果原因我想主要就是没有规定++运算具体是在哪个时刻执行。 <br>
              其实好像我看书的时候也提倡不要用这种有了++--运算之后还会参加其它运算的表达式,如:B=K++ + K++ <br>
              <br>
              <font color="#0000FF">【发言7:】</font><br>
              好象在C语言中与JAVA中++与--不一样吧,我以前做过试验,同样的语句在C中与在JAVA中 <br>
              的结果就是不一样的 <br>
              <br>
              <font color="#0000FF">【发言8:】</font><br>
              k = k++确实是一条无用的语句 <br>
              你可以试试 k += 1 我个人认为对k赋值还是用赋值运算符比较好 <br>
              <br>
              <font color="#0000FF">【发言9:】</font><br>
              你为什么要使用k=k++这样的语句呢?你是想让k加一还是保留原值呢?保留原值就不要写 <br>
              任何代码;想让k加一就用k++。 </p>
            <p>i=j++; 等价于 </p>
            <p>k=j; <br>
              j=j+1; <br>
              i=k; </p>
            <p>如果把i=j++中的i换成j,则j=j++ <br>
              k=j; <br>
              j=j+1; <br>
              j=k; <br>
              结果就是j=j </p>
            <font color="#0000FF">【发言10:】</font><br>
            k=k++; 等价于:k=k+1 吗?, 我觉得不等于。 
            <p>好像应该这样 <br>
              &gt;&gt;: i=i++ <br>
              if: i=0; <br>
              then: (i++)的值为:0; </p>
            <p>0付给i 所以 i=0 </p>
            <p>++ 发生在付值之前 不影响结果 </p>
            <font color="#FF0000">【最终的解释:】</font><br>
            What happens is that the initial value of x is stored in a temporary 
            register, then x is incremented, then the value stored in the register 
            is asigned to the left hand side of the expression, in this case the 
            LHS is x so x gets its original value. 
            <p>int x = 1; <br>
              x = x++; <br>
              Steps: <br>
              1 initial value of x is stored in temp register. So temp = 1. <br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -