【问题标题】:Boolean to yes/no布尔值是/否
【发布时间】:2014-12-08 17:13:30
【问题描述】:

我正在尝试使用以下参数创建一个名为 loopquery 的方法:

/** create a method named loopquery()
 *   - that returns a boolean value
 *   - accepts no arguments
 *   - content:
 *       - declaration of a boolean variable initialized to false
 *       - an InputDialog that requests if you want to loopagain (y,n)and assigns the value to a string variable
 *       - converts the String variable to upper case
 *       - changes the value of the boolean variable to true if the string variable has a value of "Y"
 *       - returns the value of the boolean variable  
*/

以下是对它的影响,但我认为我错过了很多。有没有人可以帮助我满足上述所有要求?这是我的呕吐代码

private static void loopquery() {
    String loopquery;
    boolean loopagain = true;

    loopquery = JOptionPane.showInputDialog(null, "Another table (y.n)", 
                          "Again?", JOptionPane.QUESTION_MESSAGE);

    loopquery = loopquery.toUpperCase();
}

【问题讨论】:

  • 简而言之,虽然这不是有效的代码:if (loopquery == "Y") { loopagain = true } else { loopagain = false}
  • String s="no"; if(boolean) s="yes";,如标题所示。
  • that returns a boolean value 你的方法定义应该是boolean 那么。
  • 根据 java bean 命名约定,你应该调用你的方法“isLoopquery()”
  • 如果您遵循@MarcB 的代码,请确保使用if (loopquery.equals("Y"))

标签: java methods boolean


【解决方案1】:
if(loopquery.equals("Y"))
   return true;
else if (loopquery.equals("N"))
   return false;

请记住,您必须将方法从 void 更改为 boolean,因为您不能在 void 方法中返回值

问候,

库尔蒂斯

【讨论】:

    【解决方案2】:

    要求:

    • 如果字符串变量的值为“Y”,则将布尔变量的值更改为 true
    • 返回布尔变量的值

    您可以在代码末尾添加这些行来修改布尔值并返回值:

    loopagain = loopquery.equals("Y");
    return loopagain;
    

    对于需求:

    • 声明一个布尔变量初始化为假

    你将布尔值初始化为真,替换这个初始化:

    boolean loopagain = true;
    

    对于这个:

    boolean loopagain = false;
    

    注意:

    Java 中变量和方法的标准表示法是 CamelCase,为了遵循标准命名约定,您应该分别将“loopQuery”和“loopAgain”的名称替换为“loopquery”和“loopagain”

    【讨论】:

      【解决方案3】:
      private static boolean loopquery() {//change the return type to boolean
          String loopquery;
          boolean loopagain = false;//asked to have this initialized to false
      
          loopquery = JOptionPane.showInputDialog(null, "Another table (y.n)", 
                                "Again?", JOptionPane.QUESTION_MESSAGE);
      
          if (loopquery.toUpperCase().equals("Y")) {
              loopagain = true;
          } 
          return loopagain;
      }
      

      您的基本结构大部分正确,但与要求您的要求存在差异:

      • 布尔值初始化为false,你已经将它初始化为true
      • 它要求返回布尔值,您的返回类型为void

      这是如何工作的,如果loopagain"Y",它将再次将循环更改为true,否则它会跳过并再次返回循环,因为它的初始化值false

      【讨论】:

        【解决方案4】:
        private static boolean isLoopQuery()
        {
            // Declaration of a boolean variable initialized to false
            boolean loopAgain = false;
        
            // An InputDialog that requests if you want to loopagain (y,n)and assigns the value to a string variable
            String loopQuery = JOptionPane.showInputDialog(null, "Another table (y.n)",
                    "Again?", JOptionPane.QUESTION_MESSAGE);
        
            // Converts the String variable to upper case
            loopQuery = loopQuery.toUpperCase();
        
            // Changes the value of the boolean variable to true if the string variable has a value of "Y"  
            if(loopQuery.equals("Y"));
            {
                loopAgain = true;
            }
        
            // returns the value of the boolean variable
            return loopAgain;
        }
        

        希望这有点清楚并符合您的每一个要求。

        【讨论】:

          猜你喜欢
          • 2012-01-06
          • 2017-01-14
          • 2016-08-22
          • 1970-01-01
          • 2013-09-02
          • 2011-01-29
          • 2019-08-25
          • 2016-07-17
          • 2013-04-02
          相关资源
          最近更新 更多