2016-09-30 81 views
0

我想用一堆IF语句编写一个Java程序。我对它实际应该是什么样子感到困惑。请问有人请提供下面的问题或类似的例子吗? IF语句是否需要每个变量的System.out.print才能编译?Java IF声明

//谢谢soooo多!!!

使用嵌套如果测试以下条件:如果被叫销售布尔变量设置为true ,请执行下列操作: 如果int变量价格低于50,双可变 贴现率设为0.01 。 如果整型变量价格为50或更大,则双变量 折扣设置为0.02。

这是我写的这个代码,但我不认为这是正确的....

boolean sale; 
int price; 
double discount; 

System.out.print("Please Enter Sale "); 
    sale = keyboard.nextBoolean(); 

    if (sale == true) 
    if (price <= 50) 
    discount = 0.01; 

    else (price >= 50) 
    discount = 0.02; 
+2

“做IF语句为每个变量需要一个System.out.print才能编译?”不,不知道你为什么这么想。尽管如此,我强烈建议你在他们周围使用大括号。你说你不认为你的代码是正确的......目前出了什么问题? –

+0

由于else语句的条件,代码不能编译。如果这被删除,它会工作得很好,虽然是的if语句块周围的括号会使它更清晰。 – user3745362

+2

你应该真的阅读关于if语句的教程,例如[nut and bolt tutorial](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html)。 –

回答

1

if (sale == true) 

相同

if (sale) 

,如果这是不正确的

if (price <= 50) 

然后你知道价格> 50,所以没有必要再检查。

if (sale) 
    if (price <= 50) 
     discount = 0.01; 
    else // price > 50 
     discount = 0.02; 

有些人喜欢使用{和}虽然我认为使用格式化你的IDE(你应该使用它)使这多余的。使用大括号看起来像

if (sale) { 
    if (price <= 50) { 
     discount = 0.01; 
    } else { // price > 50 
     discount = 0.02; 
    } 
} 

另一种方式来写这篇文章就是用?既缩短了代码

if (sale) 
    discount = price <= 50 ? 0.01 : 0.02; 

注意:由于discount有设置我会写这样

double discount = sale 
       ? price <= 50 ? 0.01 : 0.02 
       : Double.NaN; 
+0

对于像这样的简单条件,三元运算符选项是最佳选择。干净利落。 – Dez

0

你有它的要点,但两个更正。

“别人”是根本基础情况下,如果没有“如果”在声明中的if/else块返回true,所以你并不需要另一个条件就像你与

else (price >= 50) 

做的

else 

做你想要做的事。

如果你想要第二个条件,你可以使用'else if'。例如:

if(price < 50) { //If price is less than 50. 
    //Do something. 
}else if(price == 50) { //If price is equal to 50. 
    //Do something else. 
}else{ //Price isn't less than or equal to 50, so it has to be greater than 50. 
    //Do something else...else. 
} 

第二校正与

if (price <= 50) 

这是检查,如果价格小于或等于50。这不是像你描述它的计划的目标。

如果int变量价格低于50

0

首先,if语句在java中是一样的,在英文声明。 英语:“如果它是冷,我穿棉袄”

的Java:

if(cold){ 
    //wear jacket 
} 

所以if语句由两个部分组成的条件和反应。如果条件成立,则反应执行。

if(condition){ 
    reaction 
} 

在另一侧的System.out.println()是你PROGRAMM跟你说话(写的东西作为输出)。 所以if语句和System.out.println()是无关的。

您正在使用的,如果在这种情况下语句(一个不带括号)只下一个命令后,if语句作为反应

if(condition) 
    reaction 
no reaction anymore 

作为一个初学者,最好是始终设置一种特殊形式括号

else语句总是替代像这样使用:

if(condition){ 
    reaction 
}else{ 
    alternative reaction 
} 

else语句是积极的,如果条件为假。所以要么运行“反应”要么运行“替代反应”。

那么你的代码应该是这样的:

boolean sale; 
    int price; 
    double discount; 

    System.out.print("Please Enter Sale "); 
    sale = keyboard.nextBoolean(); 

    if(sale == true){ 
     if(price <= 50){ 
      discount = 0.01; 
     } else { 
      discount = 0.02; 
     } 
    } 

现在用支架,我们可以看到你的代码的问题。其他