有什么区别!false和!= false

时间:2015-11-14 18:48:13

标签: java arrays boolean boolean-logic

我不明白为什么while循环工作时,done被声明为false而while循环条件是在完成时运行并不是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);
            }
        }
    }

}

3 个答案:

答案 0 :(得分:1)

!exclamation mark,有时“爆炸”)是boolean的{​​{3}},当您说while(!done) 相同时while(done != true) while(done == false);但它更短

答案 1 :(得分:0)

变量fdata=$.ajax({ url: 'http://myrestserver/rest/v1/feedbackerrors?onlyData=true',
 type: 'get', dataType: 'json', success: function(output) {
 console.log(output) ; }
 }); 的类型为library(RODBC) dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=server_name; Database=table_name;Uid=; Pwd=; trusted_connection=yes") initdata <- sqlQuery(dbconnection,paste("select * from MyTable;")) odbcClose(channel) 。因此done是对boolean的否定。因此,如果!done为真,则done为假。但是,如果done为false,则!done为真。

所说的是否定运算符done的设备与检查布尔值是否与false,true不同。

答案 2 :(得分:0)

!

是一元运算符。使用一个布尔值。

!=

是二元运算符。你必须比较两个布尔表达式/变量。

while循环运行,直到其中的布尔表达式变为false。

您的!done表达式意味着“未完成”,因此您的循环逻辑如下:

直到没有完成,继续循环。这是纯粹的逻辑。