2013-10-19 81 views
0

我正在尝试为图像的可见性添加多个条件。向“if”添加多个条件

我读过,人们实现这一点与

if(something)|| (别的东西)|| (更多的东西) //做某事

但是,当我把||在我的陈述之间,我得到“令牌上的语法错误,无效的只同步”

有没有解决此问题的另一种方法?

有问题的代码:

SharedPreferences pref = getSharedPreferences("ActivityPREF", 
    Context.MODE_PRIVATE); 
    int clicks = pref.getInt("Total_Clicks", 0); 

//add another SharedPreferences here 

    if (clicks < 25) || //add another statement here { 
     mImage.setVisibility(View.GONE); 
     subbtn.setVisibility(View.GONE); 
    if (clicks > 25) { 
     mImage.setVisibility(View.VISIBLE); 
     subbtn.setVisibility(View.VISIBLE); 
+0

你就必须做这一切的同时括号内 – JRowan

+0

正确的语法'|| '在if语句中是'if(condition1 || condition2)'。请注意,整个事物都有一组括号。 – jonhopkins

+0

不要忘记你的右括号'}' –

回答

2

所有条件都必须是你的if语句的括号内。

if (clicks < 25 || add another statement here) { 
    ... 
} 

如果需要,可以在括号中嵌套。

if ((clicks < 25) || (add another statement here)) { 
    ... 
} 
+0

现在我不觉得傻...谢谢你的帮助! –

2

'if'语句要求条件在括号内。所以试试这样:

if (condition1 || condition2 || condition3) { 
} 
1

比尔的蜥蜴是正确的,但我会添加一些更多的信息。假设你有:

if((x > y) || (x + y) && (x >= 1)) { 

// do stuff 

} 

正如比尔说的,你需要有你的条件括号,因为你想让他们先评估。其次,你也应该明白,即使是逻辑运算符也有一个优先顺序。订单云:

  1. !(not)
  2. &&(and)
  3. ||(or)

希望这有助于

+0

您实际上并不*拥有内部圆括号,但它确实使代码更加清晰。 – chrylis

+0

你是什么意思?内部括号在那里。 'if((x> y)||(x + y)&&(x> = 1))' – Ducksauce88

+1

看到这个问题是关于Java的问题,第一个和最后一个表达式不需要括号,而括号“ x + y'并不重要,因为无论你做什么,它都将是一个错误,因为整数值不能转换为布尔值,而布尔值不能相加。 – jonhopkins