当前位置: 首页 > 知识库问答 >
问题:

执行方法时布尔值不保存

从烈
2023-03-14

我有一个方法,我有一个问题。下面的第二个方法promptForPinNumber()调用第一个方法canConvertToInteger(),然后根据布尔变量pinValid的值是true还是false执行操作。

当我单独执行方法canConvertToIntger()时,它运行良好,并且pinValid的值是正确的。

当我执行promptForPinNumber()并输入引发和异常的字符串时,pinValid的值保持为true,因此不会执行if else块的else部分,但是,pinTry的值为0,因此必须捕获并处理异常。那么,为什么pinValid的布尔值应该为false,却为true呢?

应该发生的是,如果在OUDialog.request框中输入了无效条目,则应将pinValid设置为false,然后将pintry的值更改为0,并且

  public boolean canConvertToInteger()
   {
      String pinAttempt;
      {
         pinAttempt = OUDialog.request("Enter your pin number");
         try
         {
            this.pinTry=Integer.parseInt(pinAttempt);
            this.pinValid = true;
         }
          catch (NumberFormatException anException)
        {
            this.pinTry=0;
            this.pinValid = false;
        }
      }
       return this.pinValid;
   }

  public int promptForPinNumber()
       {
          this.canConvertToInteger();
          if (pinValid = true)
          {
             return this.pinTry;
          }
           else
          {
             OUDialog.alert("Number entered is not a valid pin");
             return this.pinTry;
          }
       }

共有1个答案

隗翰海
2023-03-14

经典款,替换

if (pinValid = true)

使用:

if (pinValid == true)

甚至更好:

if (pinValid)

pinValid=1是赋值,不是表达式(条件)。

 类似资料:
  • 好的,我的问题是关于布尔返回。对于我的Comp-Sci作业,我必须使用多种方法制作一个课程注册程序,其中之一就是添加课程方法。基本上,在目录中搜索类,如果匹配,则将其添加到学生计划中,并返回布尔值true。我这么做了,但出于某种原因,这给了我一个错误。以下是代码: 为什么它不能识别布尔返回值?是因为我把它们放在了一个圈里吗?

  • 我编写了以下代码来模拟一个名为ValidatorUtil的类,该类在测试中用于验证字符串,所以我编写了ValidatorUtil应该总是返回true,但它总是返回false,最终实际上调用了ValidatorUtil的isValid方法,该方法将结果返回为false。我已经尝试过所有的匹配器,比如mockito.any()和mockito.any(configurator.class)但是没有成功

  • 我试图使用python脚本和lxml从网站上获取天气数据。风速数据将被拉出并附加到一个列表中,以便以后进行操作。我可以很好地获得我需要的信息,当它被格式化时: 我当前的代码使用Python检查span类是否等同于“nowind”,然后执行if和else语句,但只执行else语句。我当前的代码如下所示: 我想用一个XPath表达式来解决这个问题,该表达式将产生一个布尔值,而不是我当前的解决方案。如有

  • 我在一节课上做了这个方法。我已经仔细检查过了,应该可以正常工作了。当我使用这个方法在main方法中运行一个对象时,我总是得到一个假返回,即使它应该是真的。 print语句不打印,所以我无法检查值是否正确传递,我还尝试让if语句也返回true,但它仍然返回false!它让我头疼,因为一切在逻辑上都是正确的。 有没有一个我不知道的规则,如果出现错误,布尔方法会自动返回false? 在主要方法中:

  • 到目前为止我们看到的类型都能表示很大范围的数据,整数多的是,而浮点数更多。相对而言,字符集的规模小的多。C++中还有一个类型表示的范围更小,即布尔类型,它只能表示true和false两个值。 虽然没提到过该类型,但我们前面几章中实际已经使用过布尔值了。if语句和while语句中的条件就是布尔表达式。比较操作符的结果也是布尔值。例如: if (x == 5) { // 进行某些处理 } ==操

  • 原文: http://exploringjs.com/impatient-js/ch_booleans.html 基本类型 _ 布尔 _ 包含两个值 - false和true: > typeof false 'boolean' > typeof true 'boolean' 14.1。转换为布尔值 这三种方法可以将任意值x转换为布尔值。 Boolean(x) 最具描述性;推荐的。 x ?