所以这里我有这一长行 if 语句,它们应该检测 int[] anArray; 的值是否在某个范围内。 anArray = new int[15]; int[] anArray; 的值,从 anArray[0] 开始是:
49 50 51 59 0 5 9 10 15 19 50 55 89 99 100
这是确定给定值是否在范围内的代码部分:
int[] counterarray = new int[10];
for (x = 14; x >= 0; x--)
{
System.out.println(anArray[x]);
if (anArray[x] >= 0 && anArray[x] < 10)
{
counterarray[0] = counterarray[0] + 1;
}
if (anArray[x] >= 10 && anArray[x] < 20)
{
counterarray[1] = counterarray[1] + 1;
}
if (anArray[x] >= 20 && anArray[x] < 30)
{
counterarray[2] = counterarray[2] + 1;
}
if (anArray[x] >= 30 && anArray[x] < 40)
{
counterarray[3] = counterarray[3] + 1;
}
if (anArray[x] >= 40 && anArray[x] < 50)
{
counterarray[4] = counterarray[4] + 1;
}
if (anArray[x] >= 50 && anArray[x] < 60)
{
counterarray[5] = counterarray[5] + 1;
}
if (anArray[x] >= 60 && anArray[x] < 70)
{
counterarray[6] = counterarray[6] + 1;
}
if (anArray[x] >= 70 && anArray[x] < 80)
{
counterarray[7] = counterarray[7] + 1;
}
if (anArray[x] >= 80 && anArray[x] < 90)
{
counterarray[8] = counterarray[8] + 1;
}
if (anArray[x] >= 90 && anArray[x] < 101)
{
counterarray[9] = counterarray[9] + 1;
}
}
System.out.println("counterarray[0] is " +counterarray[0]);
System.out.println("counterarray[1] is " +counterarray[1]);
System.out.println("counterarray[2] is " +counterarray[2]);
System.out.println("counterarray[3] is " +counterarray[3]);
System.out.println("counterarray[4] is " +counterarray[4]);
System.out.println("counterarray[5] is " +counterarray[5]);
System.out.println("counterarray[6] is " +counterarray[6]);
System.out.println("counterarray[7] is " +counterarray[7]);
System.out.println("counterarray[8] is " +counterarray[8]);
System.out.println("counterarray[9] is " +counterarray[9]);
是的,这就是代码,但是那一长串 if 语句似乎有点多余。 for 循环遍历每个数组值并确定它们属于哪个范围。然后 int[] counterarray 将值的数量加在一起。那么,我该如何使这一长串 if 语句更美观呢?
最佳答案
int[] counterarray = new int[10];
for (x = 14; x >= 0; x--)
{
if (anArray[x] >= 0 && anArray[x] < 101) {
int idx = Math.min(anArray[x] / 10, 9);
++counterarray[idx];
}
}
如果所有范围都是 10 的倍数(例如 0-9、10-19、20-29 等),那么我们只需简单地除以 10 即可将索引放入 counterarray。 Math.min 部分用于处理(原始)范围为 90-100 的奇数最后一种情况;在 100 的情况下,idx 将等于 10,但 Math.min 对其进行限制,使其不会成为数组中的越界索引。
if 检查是为了确保我们只查看预期范围内的值(在本例中为 0-100)。否则我们可能会错误地增加最后一个存储桶以获得较大的值(例如 200)。
关于java - 我怎样才能减少这个长长的 if 语句列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34037067/
是否有类似“RVMuse1”或“RVMuselist[0]”之类的内容而不是键入整个版本号。在任何时候,我们都会看到一个可能包含5个或更多ruby的列表,我们可以轻松地键入一个数字而不是X.X.X。这也有助于rvmgemset。 最佳答案 这在RVM2.0中是可能的=>https://docs.google.com/document/d/1xW9GeEpLOWPcddDg_hOPvK4oeLxJmU3Q5FiCNT7nTAc/edit?usp=sharing-知道链接的任何人都可以发表评论
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
我正在检查一个Rails项目。在ERubyHTML模板页面上,我看到了这样几行:我不明白为什么不这样写:在这种情况下,||=和ifnil?有什么区别? 最佳答案 在这种特殊情况下没有区别,但可能是出于习惯。每当我看到nil?被使用时,它几乎总是使用不当。在Ruby中,很少有东西在逻辑上是假的,只有文字false和nil是。这意味着像if(!x.nil?)这样的代码几乎总是更好地表示为if(x)除非期望x可能是文字false。我会将其切换为||=false,因为它具有相同的结果,但这在很大程度上取决于偏好。唯一的缺点是赋值会在每次运行
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更
假设我在Ruby中有这个each循环。@list.each{|i|putsiifi>10breakend}我想循环遍历列表直到满足条件。这让我感到“不像Ruby”,因为我是Ruby的新手,是否有Ruby方法可以做到这一点? 最佳答案 您可以使用Enumerable#detect或Enumerable#take_while,取决于您想要的结果。@list.detect{|i|putsii>10}#Returnsthefirstelementgreaterthan10,ornil.正如其他人所指出的,更好的风格是先进行子选择,然后再对其
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我注意到类定义,如果我打开classMyClass,并在不覆盖的情况下添加一些东西我仍然得到了之前定义的原始方法。添加的新语句扩充了现有语句。但是对于方法定义,我仍然想要与类定义相同的行为,但是当我打开defmy_method时似乎,def中的现有语句和end被覆盖了,我需要重写一遍。那么有什么方法可以使方法定义的行为与定义相同,类似于super,但不一定是子类? 最佳答案 我想您正在寻找alias_method:classAalias_method:old_func,:funcdeffuncold_func#similartoca
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
其实做自媒体的成本并不高,入门只需要一部手机即可!在手机上找视频素材、使用手机剪辑视频、最后使用手机发布视频作品获得收益!方法并不难,今天这期内容就来给粉丝们分享一种小方法,每天稳定收益100-300,抓紧点赞收藏!1、找素材(1)使用手机拍摄自己喜欢的经典段落,使用程序把文案内容提取出来(2)也可以在豆瓣、知乎、微博等网站中找一些自己需要的文案素材(3)把文案进行润色修改,可以加入一些自己的观点(4)视频素材可以使用软件中自带的素材,也可以在素材网站中下载完整版的素材2、文案配音(1)把复制好的文案直接导入小程序中(2)调整音色、音调后一键合成音频即可(3)可以选择自己朗读配音,需要花一点时