【问题标题】:how to combine switch and if else statements如何组合 switch 和 if else 语句
【发布时间】:2010-06-27 14:01:34
【问题描述】:

我正在参加在线 Java 课程,老师要求以下内容: 编写一个菜单程序,要求用户输入一个数字,表示四个基本数学方程(加法、减法、乘法、除法)。使用 if/else 结构来执行所需的操作,询问用户输入并求解方程。 我对此很陌生,但我不明白 if/else 的意义,但我想那是无关紧要的。

如果我使用下面的案例 1、2、3、4 来确定操作,我如何使用“If 语句”来引用案例?

int userSelection;
double x;        
double y;        
double answer;

switch ( userSelection ) {
   case 1:
        TextIO.putln("Let's add! ");
        TextIO.putln();
        TextIO.putln("Enter the first number: ");
        x = TextIO.getlnDouble();
    TextIO.putln("Enter the second number: ");
        y = TextIO.getlnDouble();
        break;

//我认为我可以像这样使用'If'

        if (case 1);  // I don't know how to refference this correctly
        answer = x + y;
        TextIO.putln( x 'plus' y 'equals' answer);

提前致谢!

【问题讨论】:

    标签: java switch-statement flow-control


    【解决方案1】:

    switch 用于单个给定的变量/表达式,然后使用大小写来确定它的值,但由于您没有测试单个变量/表达式,这不适用,您应该使用 if-elseif-else 结构而是。

    【讨论】:

      【解决方案2】:

      switch case 语句是使用嵌套 if..else 语句的结构替代方案,您希望在其中为数值或枚举数据类型的不同值运行不同的逻辑。它不与 if..else 结合,两者是解决条件问题的不同方法。哪个更适合取决于您正在评估的条件。

      如果我正确理解您的代码,那么我认为您正在寻找这样的东西:

      switch ( userSelection ) {  
      case 1:  
          TextIO.putln("Let's add! ");  
          TextIO.putln();  
          TextIO.putln("Enter the first number: ");  
          x = TextIO.getlnDouble();  
          TextIO.putln("Enter the second number: ");  
          y = TextIO.getlnDouble();  
          answer = x + y;    
          TextIO.putln( x + " plus " + y + " equals " + answer);   
          break;  
      case 2:  
          ... //oh, I don't know. but I would guess: let's subtract!  
          break; 
      case 3:  
          ... //let's multiply!
          break; 
      case 4:  
          ... //let's divide! 
          break; 
      

      }

      【讨论】:

      • 这就是我开始的方式,但是因为她想要一个字母选择来选择操作和 if/else 来选择操作,所以我想我会使用 Case 语句来获取用户输入。 1 表示加法,2 表示减法,依此类推。那么如果我可以使用 IF 'case =1' 然后做以下数学运算。???
      【解决方案3】:

      这是重写 CASE 语句的预设代码:

      IF (Case==1) THEN
        *What to do when Case==1.*
      ELSE IF (Case==2) THEN
        *What to do when Case==2.*
      ELSE IF (Case==3) THEN
        *What to do when Case==3.*
      ELSE IF (Case==4) THEN
        *What to do when Case==4.*
      END IF
      

      不过,您必须用 Java 编写代码。 :) 祝你任务顺利。

      【讨论】:

      • 看起来你的第一个 if 有一个来自 JavaScript 的 === 难民
      • @barrowc - 哎呀......这是一个错字。固定的。谢谢。 :)
      【解决方案4】:

      您正在开启 userSelection,因此 userSelection 已经具有您需要的值;您可以通过引用 userSelection 变量来引用该值:

      if (userSelection == 1) {
          // add
      } else if (userSelection == 2) {
         // subtract
      } else if (userSelection == 3) {
         // multiply
      } else if (userSelection == 2) {
         // divide
      }
      

      【讨论】:

        【解决方案5】:

        在我看来,您的讲师不希望您一开始就使用switch 语句,而只是使用if 流控制结构:

        if(booleanExpression)
        {
        
        }
        else if(booleanExpression2)
        {
        
        }
        

        【讨论】:

        • 如果您使用直接的 if 语句,您将如何处理此要求:“向用户询问表示四个基本数学方程式的数字”?
        • 我不确定向用户询问这些问题是否与使用 if 语句求解方程的要求直接相关。
        • 我一直在努力,我不必使用 switch 语句。只需列出选择清单。我看不到所有树木的森林。谢谢大家!!!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-04
        • 2020-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多