当前位置: 首页 > 面试题库 >

Java中的while(x = false)和while(!x)有什么区别?

叶鸿
2023-03-14
问题内容

抱歉,我是Java新手,所以这个问题可能不清楚。

最近,我一直在尝试将try和catch语句包含在while循环中,因为我想确保从程序的其余部分中获取输入。

我遇到了一个问题,在while条件(例如,while(!done))中,在变量前面使用感叹号(!),而不是使用= false(例如,while(done =
false))会更改程序的方式运行。

前者(!done)导致try和except语句按预期运行。后者(done = false)不会,只是跳过它们并转到代码的下一部分。

我的印象是!在变量之前表示与var = false相同。

我错了吗

这是一个例子:

import java.util.Scanner;

public class TestOne {
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        int num;
        boolean inputDone = false;
        while (!inputDone) {
            try {
                System.out.print("Enter in a number here: ");
                num = input.nextInt();
                inputDone = true;
            }
            catch (Exception e) {
                System.out.println(e);
                System.exit(0);
            }
        }
        System.out.println("Success!");
    }
}

当前,编译和运行该程序将很顺利:它将提示我输入数字,输入字母或非常长的数字,从而导致打印出异常类型并退出。输入正常数字将使其打印成功!

另一方面,如果我将!inputDone替换为inputDone = false,它只会打印出成功!当我运行程序时。

谁能解释给我之间的区别!和=假语句在while循环中?


问题答案:

注意之间的差异done = falsedone == false。第一个 受让人
donefalse和的计算结果为false,第二个比较donefalse和是完全相同!done

因此,如果您使用:

while (done = false)
{
 // code here
}

然后done设置为false,而while循环中的代码根本不会运行。



 类似资料:
  • 本文向大家介绍do……while和while……do有什么区别?相关面试题,主要包含被问及do……while和while……do有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 前一个循环一遍再判断,后一个判断以后 再循环。    

  • 通过使用parseInt(x),我们可以从字符串中获取整数值。但我们也可以从(x)中实现相同的功能。具体的功能差异是什么。前任:

  • 问题内容: Java中的x 和 x之间有区别吗? 问题答案: 称为预增量,而称为后增量。

  • 问题内容: 这个问题引起了有关perl中无限循环的问题:while(1)Vs。for(;;)是否存在速度差异?,我决定在python中运行类似的比较。我希望编译器会为和生成相同的字节码,但是python2.7实际上不是这种情况。 以下脚本: 产生以下结果: 使用明显更复杂。为什么是这样? 在其他情况下,python的行为就好像等于1: 为什么要区分两者? 我注意到python3确实使用相同的操作评

  • 问题内容: 执行此操作后(幕后)会发生什么? 也就是说,当变量在一个语句中后增加并分配给它自己时?我编译并执行了这个。即使整个陈述之后仍然是7 。在我的书中,它说是递增的! 问题答案: 确实增加了。但是,你正在将 的旧值分配给它自己。 1.递增x并返回其旧值。 2. 将旧值分配回自己。 因此,最后将其分配回其初始值。

  • 本文向大家介绍C语言中while(1)和while(0)之间的区别,包括了C语言中while(1)和while(0)之间的区别的使用技巧和注意事项,需要的朋友参考一下 众所周知,在C语言中,“ while”关键字用于定义一个循环,该循环在作为参数传递给循环的条件下起作用。现在,由于condition可以具有两个值true或false,因此,如果condition为true,则while块中的代码将