屌絲大話java之兩大迴圈之間不可告人的秘密

來源:互聯網
上載者:User

大家看到這個題目可能不以為然,不過接下來你看到絕對會讓你慶幸,因為你選擇了屌絲!

java兩大迴圈大家應該都非常熟悉了,不熟悉的可以去學習下java基礎或者C語言基礎。這兩大迴圈無非就是for迴圈和while迴圈。

今天我不是要交大家怎麼使用,而是要告訴大家他們兩位好基友之間不為人之的秘密。

首先我們來看這樣一段代碼:

1 public static void main(String[] args){
2   int n = 100; 
3   for(;;)  {
4   }
5   System.out.println(n);
6 } 

以上這段代碼會編譯出錯嗎?答案很簡單,放到eclipse裡面一運行就能得出,不能編譯通過。好為什麼不能編譯通過?也許有人會說因為上面是個死迴圈啊!

那好,我們再來看一段代碼

1 public static void main(String[] args) {
2   int n = 100;
3   while(n>0);
4   System.out.println(n);
5 }

上面這段代碼會編譯出錯嗎? 答案是不會。

 同樣是死迴圈,為什麼差別那麼大呢?也許你這時候會懷疑,他們兩個不是一個媽生的,也許你會懷疑他們是屌絲遇到了白富美。

不管你們怎麼想,我都決定將這個不可告人的秘密公諸於眾。

原因就是:迴圈問題

 雖然兩個大家看起來都是死迴圈,但是死迴圈在某種程度上是不一樣的。

仔細看看兩個迴圈,第一個迴圈是沒有變數可以改變他,那麼我們的電腦會認為這個迴圈沒得救了,死定了,所以後面的語句也算是跟錯人了,永遠沒有出頭之日。 而第二個迴圈呢,他的控制中是有變數來控制的,這個變數在電腦看來這個死迴圈還有的救,只要改變變數的值,後面的語句那還是有機會出頭的。所以這個秘密其實與迴圈語句無關,而是迴圈的方式有關係。

 

當然很多初學者可能看不懂第一個迴圈為啥是死迴圈,我給大家解釋下for迴圈中必須要有兩個分號,當然如果除了分號什麼都沒有,那麼預設是這樣的 

1 public static void main(String[] args){
2   int n = 100; 
3   for(;true;)  {
4   }
5   System.out.println(n);
6 } 

for迴圈中第一個位置是變數的初始化,記住是初始化,你這樣寫是不行的

1 public static void main(String[] args){
2   int n = 100; 
3   for(n;true;)  {
4   }
5   System.out.println(n);
6 } 

 為什麼不行,因為for迴圈的第一個分號前面要初始化,你必須這樣寫

1 public static void main(String[] args){
2   int n = 100; 
3   for(n=100;true;)  {
4   }
5   System.out.println(n);
6 } 

也就是說,哪怕你在上面定義了,下面for迴圈中你要使用就必須要賦初始值。
關於for迴圈還有一點要說,通常我們用的for迴圈在最後一個分號後面是寫自加自減運算,其實只要是語句都可以填進去,唯一要注意的就是不能在這句語句後面加上分號。具體如下:

1 public static void main(String[] args){
2   int n = 100; 
3   for(n=100;true;System.out.println(n))  {
4   }
5   System.out.println(n);
6 } 

這樣寫是沒有問題的。

 

同樣有初學者會問while後面直接加分號是什麼意思,也許我這樣寫你就明白了:

 

1 public static void main(String[] args) {
2   int n = 100;
3   while(n>0){

4     ;

5   } 

6   System.out.println(n);
7 }

 好了,今天的屌絲大話JAVA之兩大迴圈之不可告人的秘密就到這裡,歡迎大家欣賞!

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.