【问题标题】:use ternary operator to solve multiple conditions [closed]使用三元运算符解决多个条件 [关闭]
【发布时间】:2016-12-27 21:58:41
【问题描述】:

谁能帮我解决这个问题。它不起作用。

【问题讨论】:

  • 没有。没有人会为您做作业,也不会为您编写代码,我们不适合那样做。请做好你的工作,然后回来解决一个具体问题
  • 类 Question05 { public static void main(String[] args) { double gpa= Double.parseDouble(args[0]); gpa= gpa>= 3.6?"First class Hons":3.6>gpa && gpa>=3.4?"Upper Second Class Hons": 3.4>gpa && gpa>=3.0?"Lower Second Class Hons": 3.0>gpa && gpa >=2.0?"Pass":"你失败了";我这样做了,但它不起作用,这段代码有什么问题吗?
  • 请不要在 cmets 中发布代码。将其发布在问题中并将其标记为尝试。
  • 老兄,完全标记了你。维娜正在寻求帮助。本来可以有更好的回应。 @veena,您能否将您的代码添加到您的问题中并让我们知道您的最终目标?我们都想帮助你,但首先想知道如何。因为开发人员应该互相帮助理解事物并变得更先进。

标签: ternary-operator


【解决方案1】:

看这里:

class Question05 
{ 
   public static void main(String[] args) 
   { 
     double gpa = Double.parseDouble(args[0]); 
     String res = gpa >= 3.6?"First class Hons":(gpa<3.6 && gpa>=3.4?"Upper Second Class Hons": (gpa<3.4 && gpa>=3.0?"Lower Second Class Hons": (gpa<3.0 && gpa>=2.0?"Pass":"you have failed"))); 
     System.out.println(res);
   } 
}

编辑:@veena,您试图将一个字符串分配给 gpa,它被声明为双精度!!!

【讨论】:

  • @veena - 这处理以下场景....如果场景一通过,那么,请检查场景 2.... 听起来你可能会因为选择这个而失去信用。老师的意思可能是……如果情景一和情景二是真的,那么……
  • @User_Targaryen - 它有多个通过和多个失败的场景。由于问题中没有澄清,以这种方式回答会使在谷歌搜索中找到这个的新手感到困惑。当问题的标题很可能是搜索“if(a && b){true}else{false}。您应该为新手阐明逻辑,这样他们就不必通读三元布局就知道它是如何工作的。总而言之,如果您对其进行编辑以解释三元逻辑。
【解决方案2】:

我之前有过这个问题,有几种方法,取决于你对这个问题的意思...... 由于这似乎是一项课堂作业,我将给出我自己的例子而不是修复你的例子。

场景 1: 如果您想有多个通过条件,请考虑以下... 为了安全起见,将括号中的条件括起来,并使用逻辑分隔符。
例如:
(1==1 &amp;&amp; 2==2)?"yay":"sadness"
https://jsfiddle.net/o4nu3ya5/

场景 2: 如果您想根据之前验证的条件验证条件,请考虑以下...
只需在三元中放置一个三元,可能称为嵌套三元? 例如:
1==1?2==2?"sweet":"almost":"not close"
https://jsfiddle.net/o4nu3ya5/1/

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

三元组非常有趣。习惯它们,尽管理解,它们会使许多开发人员感到沮丧,因为它们更难阅读。

【讨论】:

    猜你喜欢
    • 2015-02-15
    • 2013-06-06
    • 2012-09-14
    • 2011-06-26
    • 2015-08-29
    • 2020-08-21
    • 2013-01-14
    • 2020-05-18
    • 2016-11-02
    相关资源
    最近更新 更多