Java中有很多If条件
发布时间:2020-12-15 02:04:21 所属栏目:Java 来源:网络整理
导读:我刚开始学习 java并且有一个非常基本的问题.我有一个标签,我希望在1到18之间的随机整数落在特定数字上时更改颜色.这些数字并不奇怪或偶数,所以我不能用它. 现在我有这个: if (Random == 1 || Random == 2 || Random == 5 || Random == 7 || Random == 12 |
我刚开始学习
java并且有一个非常基本的问题.我有一个标签,我希望在1到18之间的随机整数落在特定数字上时更改颜色.这些数字并不奇怪或偶数,所以我不能用它.
现在我有这个: if (Random == 1 || Random == 2 || Random == 5 || Random == 7 || Random == 12 || Random == 14 || Random == 16 || Random == 18) label_number.setForeground(SWTResourceManager.getColor(SWT.COLOR_BLUE)); else if (Random == 3 || Random == 4 || Random == 6 || Random == 8 || || Random == 9 | Random == 10 || Random == 11 || Random == 13 || Random == 15 || Random == 17) label_wheelNumber.setForeground(SWTResourceManager.getColor(SWT.COLOR_GREEN)); 我知道它看起来很傻,而且我觉得这样做是个白痴.您有什么推荐的吗?我没上过课,所以任何解释都非常有用.谢谢 解决方法
您可以使用开关:
switch(Random) { case 1: case 2: case 5: case 7: case 12: case 14: case 16: case 18: //something... break; case 3: case 4: case 6: case 8: case 9: case 10: case 11: case 13: case 15: case 17: //something... break; default: //just in case none of the over values was selected } 如果值可能快速变化,或者您希望允许更多值,则可以将它们存储在数组或类似数据中: static final int[] FOREGROUND_BLUE = {1,2,5,7,12,14,16,18}; static final int[] FOREGROUND_GREEN = {3,4,6,8,9,10,11,13,15,17}; 然后执行搜索以查找该值是否属于指定的数组: //using binary search since the data in the array is already sorted int found = Arrays.binarySearch(FOREGROUND_BLUE,Random); if (found >= 0) { //something... } found = Arrays.binarySearch(FOREGROUND_GREEN,Random); if (found >= 0) { //something... } else { //... } 如果您甚至可以拥有更多选项,可能您希望使用类似缓存的方法并将数据存储在Map< Integer,Color>中: static final Map<Integer,Color> colorMap; static { Map<Integer,Color> colorMapData = new HashMap<Integer,Color>(); Color blue = SWTResourceManager.getColor(SWT.COLOR_BLUE); Color green = SWTResourceManager.getColor(SWT.COLOR_GREEN); colorMapData.put(1,blue); colorMapData.put(2,blue); colorMapData.put(3,green); colorMapData.put(4,green); colorMapData.put(5,blue); //... //this makes colorMap truly constant and its values cannot be modified colorMap = Collections.unmodifiableMap(colorMapData); } 然后你只需调用map中的值: Color = colorMap.get(Random); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |