【问题标题】:If-else statement for a string字符串的 if-else 语句
【发布时间】:2018-03-09 14:55:43
【问题描述】:

我正在尝试编写一个条件语句,如果满足条件,则字符串 oranges ="yes please"。如果不是,那么它应该说“不,谢谢”。我打算稍后在像 System.out.println("y"+ "m" + "d" + "oranges") 这样的打印语句中使用字符串 oranges。 y、m 和 d 是用户输入。这是我的代码的相关部分。我做错了什么?

(经验水平:前几天刚开始接触Java)

String oranges;
      if ((y > 2777) && (m > 2) && (d > 22)){
        String oranges = "yes please";
      }
        else
        {String oranges = "no, thanks";
        }

【问题讨论】:

  • String oranges; 行声明了一个名为oranges 的变量,String oranges = "yes please"; 行声明了另一个变量,它 名为@987654325 @。如果你想让第二个语句assign第一个变量,它应该是oranges = "yes please";
  • 您可以像这样打印System.out.format("%d %d %d %s", y, m,d, oranges );。除此之外,不要多次声明橙子,因此请从 if-else 条件中删除橙子声明

标签: java string conditional


【解决方案1】:

你也可以走很酷的路线,尝试三元运算符方法

 String oranges = ((y > 2777) && (m > 2) && (d > 22)) ? "yes please" : "no, thanks";

语法是 ?=then, : = else

在这种方法中,您只需要一个字符串变量。

快乐的 Java 编码!

【讨论】:

    【解决方案2】:

    问题是重新声明橙色的数据类型,第一个声明很好,然后第二个问题是您的输出不应在引号中包含橙色,因为这不会输出橙色变量的值。加上引号将导致以字符串形式输出橙子。

    这是我刚才解释的一个例子

    public class JavaApplication1 {
    
    
        public static void main(String[] args) {
    
          String oranges = "Any thing you want";
          int y = 0;
          int m = 0;
          int d = 0;
    
          if ((y > 2777) && (m > 2) && (d > 22)){
            oranges = "yes please";
          }
          else{
            oranges = "no, thanks";
            }
         System.out.println(y+ m + d + oranges);
        }
        
    }

    【讨论】:

    • 代码很好,没有 afterToday 应该可以正常运行
    • 复制并在您的 IDE 中运行它,您会看到它很好
    • String oranges = "Any thing you want"; int y = 0; int m = 0; int d = 0; if ((y > 2777) && (m > 2) && (d > 22)){ oranges = "yes please"; } else{ oranges = "no, thanks"; } String a = oranges; System.out.println(y+ m + d + a);
    • 最后的字符串是我在代码中的唯一区别。代码编译运行,不符合条件,每次都不感谢,不管条件是否满足
    • 请记住 && 运算符只有在所有条件都为真时才为真,这意味着 y>2777 并且 m>2 和 d>22 让你得到肯定。尝试这些值并查看输出 y = 8888;米 = 7770; d = 7870;
    【解决方案3】:

    你的代码编译不成功,你已经声明了两次oranges。看看全局变量和局部变量。正确的应该是这样的:

    String oranges;
    if ((y > 2777) && (m > 2) && (d > 22)){
        oranges = "yes please";
    }
    else{
        oranges = "no, thanks";
    }
    System.out.println(oranges);
    

    【讨论】:

      【解决方案4】:

      请尝试:

        String oranges,afterToday;
      
        int x, y , d; //here code goes to get user input 
      
        if ((y > 2777) && (m > 2) && (d > 22)){
            oranges = "yes please";
        }else{
             afterToday = "no, thanks";
        }
        System.out.println("Y = "+y "M = "+m + "D ="+d + "Oranges: "+oranges);
      

      【讨论】:

        【解决方案5】:

        你应该使用你的代码

        String oranges="";
         //declare y,m and d and initialize with some value or read data from user
         //int y,d,m;
          if ((y > 2777) && (m > 2) && (d > 22)){
            oranges = "yes please";
          }
            else
            {
              oranges = "no, thanks";
            }
        System.out.println(y+" "+m+" "+d+" "+oranges);
        

        【讨论】:

          【解决方案6】:

          这里有一些代码可用于实现您的目标,其中包括用于打印的System.out.printf(String, Object...) 方法(此方法比单独的System.out.println(String) 提供了更多的输出格式控制;printf 可以查看文档h̲e̲r̲e̲ ):

          public class Solution {
          
              public static void main(String[] args) {
          
                  // Code in which the variables y, m, and d are created and assigned proper values goes here.
          
                  String oranges = ((y > 2777) && (m > 2) && (d > 22)) ? "yes please" : "no, thanks";
                  System.out.printf("%d %d %d %s", y, m, d, oranges);
              }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-02-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多