2015-11-14 88 views
-1

我不明白爲什麼while循環有效,done被聲明爲false,while循環的條件是在done不是false時運行。那麼爲什麼它會被執行? !完成和完成!=假?!false和!= false有什麼區別

import java.util.ArrayList; 
import java.util.Scanner; 

public class ArrayListDemo 
{ 

    public static void main(String[] args) 
    { 
     ArrayList<String> toDoList = new ArrayList<String>(20); 
     System.out.println("Enter list entries, when prompted."); 
     boolean done = false; 
     String next = null; 
     String answer; 
     Scanner keyboard = new Scanner(System.in); 

     while(!done) 
     { 
      System.out.println("Input an entry:"); 
      next = keyboard.nextLine(); 
      toDoList.add(next); 
      System.out.println("More items for the list? "); 
      answer = keyboard.nextLine(); 
      if(!(answer.equalsIgnoreCase("yes"))) 
      { 
       done = true; 
      } 
      System.out.println("The list contains:"); 
      for(String entry: toDoList) 
      { 
       System.out.println(entry); 
      } 
     } 
    } 

} 
+1

!false == true。 –

+0

'done == false' - '!done ==!false == true' - 因此循環運行。混淆在哪裏? – PPartisan

+0

done是false,而while循環只有在done完成時纔會循環等於true,爲什麼它會循環? – peace9000

回答

0

可變doneboolean類型。所以這個!donedone的否定。因此,如果done爲真,則!done爲假。而如果done爲假,則!done爲真。

這就是說,否定運算符!的用法與檢查布爾值是否與false不同。

+0

so whlie(!done)意思是當(!done)是真的時做這個任務嗎? – peace9000

+0

至於現實生活中...... – laune

+0

@ peace9000到底!你可以閱讀它,但不做以下事情...所以現在你看到這個陳述的表現力。 – Christos

0
! 

是一元運算符。適用於一個布爾值。

!= 

是一個二元運算符。你必須用它比較兩個布爾表達式/變量。


一個while循環運行,直到它裏面的布爾表達式爲假。

!done表達的意思是「沒有這樣做」,讓你的循環的邏輯如下:

,直到它不這樣做,不斷循環。這是純粹的邏輯。

1

!exclamation mark,有時 「砰」)是booleanlogical negation,當你說while(!done)它是相同while(done != true)while(done == false);但它是更短

相關問題