tag:blogger.com,1999:blog-6505213162600961434.post1020417136226697127..comments2023-05-30T23:46:48.209+08:00Comments on ~.:.': .NET碎碎念:'.':.~: [C#] 算術運算子的先後順序坎尼http://www.blogger.com/profile/14668329118252754405noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-6505213162600961434.post-57834583306717033062010-01-04T11:11:11.058+08:002010-01-04T11:11:11.058+08:00就上面那些意見來看,考這題目也沒太大意義啦 ... 這種東西實務上碰到的時候再去釐清就好,真正重要的...就上面那些意見來看,考這題目也沒太大意義啦 ... 這種東西實務上碰到的時候再去釐清就好,真正重要的是演算法的精神,而不在這些枝微末節的地方。<br /><br />不過為了應付考試,還是要在腦中切割一塊記憶體來記憶一下這種討厭的題目 =.=aAnonymoushttps://www.blogger.com/profile/00470726729681933611noreply@blogger.comtag:blogger.com,1999:blog-6505213162600961434.post-75847654339076749362010-01-04T10:58:14.723+08:002010-01-04T10:58:14.723+08:00java 和 c# 的 compiler 執行結果一樣
現在還沒測過其他的編譯器,大概就只能先用這樣...java 和 c# 的 compiler 執行結果一樣<br />現在還沒測過其他的編譯器,大概就只能先用這樣的方式去解釋<br /><br />話說後面的演算法裡就有很多 ++ -- 的寫法<br />老師自己都教到快哭了 (台下眼神已死 XD坎尼https://www.blogger.com/profile/14668329118252754405noreply@blogger.comtag:blogger.com,1999:blog-6505213162600961434.post-86782055611212126422010-01-04T10:23:28.976+08:002010-01-04T10:23:28.976+08:00記得無解是因為有些 compiler 會先計算兩數相加,再做累加,依據每個人 compiler 不同...記得無解是因為有些 compiler 會先計算兩數相加,再做累加,依據每個人 compiler 不同,最後的答案可能會不同。<br /><br />這題是 java program,依據官網說明 <br /><a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#4779" rel="nofollow"><15.7 Evaluation Order></a> 發現 java 似乎不受 compiler 影響,一樣是由左到右開始做演算處理(有誤解原文意思請糾正我^^):<br /><br />int z=-1;<br /><br />println( ++z )<br />println( 0 [and z=0 now] )<br />println( 0 )<br /><br />println( z-- )<br />println( 0 [and z=-1 now] )<br />println( 0 )<br /><br />println( z++ +z )<br />println( -1 [and z=0 now] +z )<br />println( -1+0 )<br />println( -1 )<br /><br />println( z+ z++ )<br />println( 0+0 [and z=1 now] )<br />println( 0 )<br /><br />----------------- 傳說中的分隔線 -------------------<br /><br />當初我是這樣去解釋這題~<br /><br /><br />實際開發程式有人這麼寫的話,應該會被維護的人扭斷脖子吧.....Rubyhttps://www.blogger.com/profile/07634214043440232554noreply@blogger.comtag:blogger.com,1999:blog-6505213162600961434.post-42099690733879451262010-01-02T23:09:04.227+08:002010-01-02T23:09:04.227+08:00還真的沒注意到,筆誤了,感謝提醒 (已修正)
本篇直接從問題上 copy 到 code 裡,所以就少...還真的沒注意到,筆誤了,感謝提醒 (已修正)<br />本篇直接從問題上 copy 到 code 裡,所以就少了說明<br />下篇就清楚多了 :)坎尼https://www.blogger.com/profile/14668329118252754405noreply@blogger.comtag:blogger.com,1999:blog-6505213162600961434.post-81588605610055922322010-01-02T23:04:03.867+08:002010-01-02T23:04:03.867+08:00我把我的疑問抓圖寄給你啦!另外建議你的 Cnosole 輸出可以註明「output:0, Z:-1」...我把我的疑問抓圖寄給你啦!另外建議你的 Cnosole 輸出可以註明「output:0, Z:-1」之類的,這樣比較清楚~~Anonymoushttps://www.blogger.com/profile/00470726729681933611noreply@blogger.comtag:blogger.com,1999:blog-6505213162600961434.post-59188161595004548342010-01-02T00:57:50.501+08:002010-01-02T00:57:50.501+08:00第三個和第四個值的算法,主要是差別在 z++ 的位置
第三個值因為後面有運算式在等著,所以它就先做完...第三個和第四個值的算法,主要是差別在 z++ 的位置<br />第三個值因為後面有運算式在等著,所以它就先做完 ++<br />第四個值則因為在式子的最後,所以做完運算之後再把 z 值 ++<br /><br />我想我再寫一篇用程式來說明好了 XD坎尼https://www.blogger.com/profile/14668329118252754405noreply@blogger.comtag:blogger.com,1999:blog-6505213162600961434.post-85152354481946978232010-01-01T16:16:56.008+08:002010-01-01T16:16:56.008+08:00第三個值和地四個值,你的抓圖示一致的,但是跟文字說明好像不太一致@@?第三個值和地四個值,你的抓圖示一致的,但是跟文字說明好像不太一致@@?Anonymoushttps://www.blogger.com/profile/00470726729681933611noreply@blogger.com