我不明白为什么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);
}
}
}
}
答案 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
表达式意味着“未完成”,因此您的循环逻辑如下:
直到没有完成,继续循环。这是纯粹的逻辑。