【问题标题】:While loop / javawhile循环/java
【发布时间】:2009-12-15 15:00:07
【问题描述】:

我正在做一个程序,它有两个不同的问题,确切地说是欧姆和安培。

我知道如何进行这项工作,但问题是最后应该会弹出一个问题,询问“你想进行新的计算吗?”这个问题应该像我按“Y”,程序应该从头开始,如果我按“N”,程序应该退出。

我希望任何人有一些想法可以帮助我完成这个。并且程序必须是 JOptionpane.dialog/message 格式。

//德拉兹

这是我的atm。

//Declaring Variables

Ampere = Integer.parseInt(FragaAm);
Ohm = Integer.parseInt(FragaOhm);

//koden
do
{
    FragaAm =JOptionPane.showInputDialog("Hur många Ampere? ");
    FragaOhm = JOptionPane.showInputDialog("hur hög resistans? ");
    svar = Ohm*Ampere; //calculate
    slutsvar = svar + "Volt"; //answer
    JOptionPane.showMessageDialog(null,slutsvar);    

    borjaom =JOptionPane.showInputDialog("Igen? J eller N " ); // the question which ask for new calc
} while ( borjaom == "j" ||borjaom == "J" );

【问题讨论】:

  • 如果您可以添加一些代码,这可能有助于我们准确确定您需要什么。只需确保在发布代码时将代码行缩进 4 个空格,以便在 SO 上正确格式化。
  • 你有代码的雏形还是你不想有人两个为你写代码?
  • 这是作业吗?您确定您使用的是 JavaScript,而不是 Java Swing?
  • 听起来像是一个错误分类的家庭作业。 JOptionPane 是一个 Java/Swing 类。
  • JOptionPane 在 Java API 中。你确定你说的不是 Java 吗?

标签: java loops while-loop


【解决方案1】:

您可以先查看 Sun 文章 How to Make Dialogs
它提到了一个 JOptionPane 配置,就像您要制作的那样:

final JOptionPane optionPane = new JOptionPane(
    "The only way to close this dialog is by\n"
    + "pressing one of the following buttons.\n"
    + "Do you understand?",
    JOptionPane.QUESTION_MESSAGE,
    JOptionPane.YES_NO_OPTION);

【讨论】:

  • 问题要求按“Y”或“N”而不是标有“是”或“否”的按钮。
  • 是的,布兰登,从一开始就是我的问题。但这只是解释我需要一些东西来调用程序重新启动或退出的一种方式。这同样有效
【解决方案2】:

试试这个:

borjaom =JOptionPane.showInputDialog(null, "Igen? J eller N " );

另外,JOptionPane只能用于输入字符串。因此,您设置为从 JOptionPane 接收输入的所有变量都应声明为字符串。 AmpereOhm 应声明为整数,而 FragaAmFragaOhmborjaom 应声明为整数被声明为字符串。

【讨论】:

    【解决方案3】:

    你的while条件:

    } while ( borjaom == "j" ||borjaom == "J" );
    

    假设字符串可以在对象基础上进行比较,虽然在字符串被实习的情况下确实如此,但最好切换到表示是/否结果的枚举整数或使用来自String 的 equals 方法:

    } while ("J".equalsIgnorecase(borjaom));
    

    (使用这种格式而不是borjaom.equalsIgnorecase("J") 的优点是它可以正确处理borjoam == null 的情况。)

    【讨论】:

      【解决方案4】:

      作为 VonC 所说的替代方案,采用 JOptionPane.dialog/message 格式:

      //Declaring Variables
      int borjaom = JOptionPane.NO_OPTION;
      
      // omitted other code, but it should still be here
      
          // Note that borjaom is an int now
          borjaom = JOptionPane.showConfirmDialog(null, "Igen?", "Title goes here", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE ); // the question which ask for new calc
      
        } while ( borjaom == JOptionPane.YES_OPTION );
      

      borjaom 将设置为JOptionPane.NO_OPTIONJOptionPane.YES_OPTION 之一。

      哦,如果您想要一个无标题对话框(或使用默认标题),请将 "Title goes here" 更改为 null

      【讨论】:

        【解决方案5】:

        这部分将无法正常工作:

            Ampere = Integer.parseInt(FragaAm);
            Ohm = Integer.parseInt(FragaOhm);
        
            do
            {
                FragaAm =JOptionPane.showInputDialog("Hur många Ampere? ");
                FragaOhm = JOptionPane.showInputDialog("hur hög resistans? ");
        

        您在读取 ​​FragaAm 之前将其转换为整数。
        你必须先阅读它然后转换:

            do
            {
                FragaAm =JOptionPane.showInputDialog("Hur många Ampere? ");
                Ampere = Integer.parseInt(FragaAm);
                FragaOhm = JOptionPane.showInputDialog("hur hög resistans? ");
                Ohm = Integer.parseInt(FragaOhm);
        

        请查看Code Conventions for the Java Programming Language ,
        在您的情况下:变量以小写字母开头(约定,但在全世界范围内使用)

        【讨论】:

          猜你喜欢
          • 2018-07-07
          • 2011-01-20
          • 1970-01-01
          • 2022-09-24
          • 2010-11-26
          • 2014-03-29
          • 2021-03-27
          • 2020-11-26
          相关资源
          最近更新 更多