Android检查int是不是在区间+ switch语句中
Posted
技术标签:
【中文标题】Android检查int是不是在区间+ switch语句中【英文标题】:Android check if an int is in an interval + switch statementAndroid检查int是否在区间+ switch语句中 【发布时间】:2013-08-24 11:13:02 【问题描述】:我正在显示用户分数“正确/尝试”(例如 10/100),但我想将其显示为 %(例如 10%)。此外,如果分数 >= 90%,我希望它是绿色的,如果分数在 60% 和 90% 之间,我希望它是蓝色的,否则是红色的。使用我的代码,如果得分为 100%,则得分为绿色,否则为红色。它永远不是蓝色的。 (如果我最小化应用程序并返回,有时甚至是黑色,来自 xml 的默认值)。
我的班级就是这样调用changemyColor函数的
....
int holderRight = sharedPrefs.getInt("Right", 0);
int holderTries = sharedPrefs.getInt("Tries", 0);
if ( holderTries != 0) // to avoid n/0
changemyColor(holderRight,holderTries);
这就是函数
public void changemyColor(int right, int tries)
TextView tvId = (TextView) findViewById(com.example.somma.R.id.score_field);
int pino = 0;
double value = ((right / tries)*100) ;
tvId.setText(getString(R.string.Score_capital) + sharedPrefs.getInt("Right", 0) + getString(R.string.Score_of) + sharedPrefs.getInt("Tries", 0));
if (value >= 80)
pino = 1;
else if (value < 80 & value >= 30)
pino = 2;
else if (value < 30)
pino = 3;
switch (pino)
case 1:
tvId.setTextColor(Color.GREEN);
break;
case 2:
tvId.setTextColor(Color.BLUE);
break;
case 3:
tvId.setTextColor(Color.RED);
break;
我也把代码改成了
blabla.setText(value + " " + right + "/" + tries);
得到输出
"1.0 1/1"
"0.0 1/2"
"0.0 2/3"
"0.0 3/4"
"0.0 4/5"
"0.0 5/6"
"0.0 6/7"
"0.0 7/8"
"0.0 8/9"
"0.0 9/10"
我认为我在分区线上做错了什么,但我无法独自解决。任何帮助,将不胜感激。
【问题讨论】:
整数除法返回整数值 我不知道!看来我还是缺乏基础。你解决了我的问题。非常感谢你!我将函数更改为 public void changemyColor(double uno, double due) 现在一切都像一个魅力。 @pinolo 这不是最合适的解决方法:try 和 right 是整数值,应该保持整数值。相反,请使用double value = ((double) right / tries)
。
您是否想在 else 子句中使用 &
而不是 &&
:else if (value < 80 & value >= 30)
?!这两个运算符之间有区别!
是的,我故意使用 & 而不是 && 但现在我意识到它没有多大意义。感谢您指出!
【参考方案1】:
由于它是移动的,如果您仍然想使用int
来减少设备上的资源,(在意识到使用整数时默认整数除法之后),您可以先执行乘法,这样您就不会' t 取整为 0:
int value = (right*100) / tries;
它不会很准确,但无论如何您确实有一系列值要检查。只是一个想法。
【讨论】:
我不需要那种精确度,所以您的解决方案是完美的。非常感谢!【参考方案2】:如果你想要准确的结果,你必须使用
double value=(right*100)/(double)tries
【讨论】:
你能解释一下为什么不需要对(双重)施放权利吗?编辑:好的,我读到了@Ozzy 的答案。 非常感谢您花时间阅读我的帖子并写下您的答案。我希望我能选择 2 个最佳答案。以上是关于Android检查int是不是在区间+ switch语句中的主要内容,如果未能解决你的问题,请参考以下文章