【问题标题】:What is difference between !false and != false!false 和 != false 有什么区别
【发布时间】:2015-11-14 18:48:13
【问题描述】:

我不明白为什么 while 循环有效,done 被声明为 false,而 while 循环条件是在 done 不为 false 时运行。那么它为什么会被执行呢? !done 和 done != 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);
            }
        }
    }

}

【问题讨论】:

  • done == false - !done == !false == true - 这样循环运行。哪里出了问题?
  • done 为 false,while 循环仅在 done 等于 true 时才循环,为什么它会循环?

标签: java arrays boolean boolean-logic


【解决方案1】:

!exclamation mark,有时是“砰”)是booleanlogical negation,当您说while(!done) 时,它与while(done != true) 相同 >和 while(done == false);但它更短

【讨论】:

    【解决方案2】:

    变量done 的类型为boolean。所以这个!donedone的否定。因此,如果done 为真,则!done 为假。而如果done 为假,!done 为真。

    也就是说,否定运算符! 与检查布尔值是否不同于 false、true 不同。

    【讨论】:

    • 所以 whlie(!done) 表示在 (!done) 为真时执行此任务?
    • @peace9000 完全正确!您可以将其视为未完成时执行以下操作...所以现在您看到了该语句的表现力。
    • done 为假时,!done 为真。所以它至少会执行一次。当!(answer.equalsIgnoreCase("yes")) 变为真时,done 的值为真,这将是最后一个 while 循环。
    【解决方案3】:
    !
    

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

    !=
    

    是二元运算符。您必须将两个布尔表达式/变量与之进行比较。


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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 2011-03-20
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      相关资源
      最近更新 更多