Java 我怎样才能减少这种重复?(爪哇)
所以,在我的一个代码中有一个“do-while”语句,正如你所看到的,我在其中不断重复if语句。我怎样才能减少它? 我是新手,我想不出更好的方法来解决这个问题Java 我怎样才能减少这种重复?(爪哇),java,Java,所以,在我的一个代码中有一个“do-while”语句,正如你所看到的,我在其中不断重复if语句。我怎样才能减少它? 我是新手,我想不出更好的方法来解决这个问题 do { if (id1 <= 15) { np++; }if(id2<=15){ np++;} if(id3<=15){ np++;} if(id4<=15){
do {
if (id1 <= 15) {
np++;
}if(id2<=15){
np++;}
if(id3<=15){
np++;}
if(id4<=15){
np++;}
if(id5<=15){
np++;}
if(id6<=15){
np++;}
if(id7<=15){
np++;}
if(id8<=15){
np++;}
if ((id1>=16)&&(id1<=30)){
np2++;}
if ((id2>=16)&&(id2<=30)){
np2++;}
if ((id3>=16)&&(id3<=30)){
np2++;}
if ((id4>=16)&&(id4<=30)){
np2++;}
if ((id5>=16)&&(id5<=30)){
np2++;}
if ((id6>=16)&&(id6<=30)){
np2++;}
if ((id7>16)&&(id7<30)){
np2++;}
if ((id8>16)&&(id8<30)){
np2++;}
if ((id1 >= 31)&&(id1<=45)){
np3++;}
if ((id2 >= 31)&&(id2<=45)){
np3++;}
if ((id3 >= 31)&&(id3<=45)){
np3++;}
if ((id4 >= 31)&&(id4<=45)){
np3++;}
if ((id5 >= 31)&&(id5<=45)){
np3++;}
if ((id6 >= 31)&&(id6<=45)){
np3++;}
if ((id7 >= 31)&&(id7<=45)){
np3++;}
if ((id8>=31)&&(id8<=45)){
np3++;}
if ((id1>=46)&&(id1<=60)){
np4++;}
if ((id2>=46)&&(id2<=60)){
np4++;}
if ((id3>=46)&&(id3<=60)){
np4++;}
if ((id4>=46)&&(id4<=60)){
np4++; }
if ((id5>=46)&&(id5<=60)){
np4++;}
if ((id6>=46)&&(id6<=60)){
np4++; }
if ((id7>=46)&&(id7<=60)){
np4++;}
if ((id8>=46)&&(id8<=60)){
np4++;}
if (id1>60){
np5++;}
if (id2>60){
np5++;}
if (id3>60){
np5++;}
if (id4>60){
np5++;}
if (id5>60){
np5++;}
if (id6>60){
np5++;}
if (id7>60){
np5++;}
if (id8>60){
np5++;}
p=np+np2+np3+np4+np5;
}while(p==0);
}}
do{
如果(ID160){
np5++;}
p=np+np2+np3+np4+np5;
}而(p==0);
}}
将8个ID
放入一个数组中。然后在id
上循环,在每次迭代期间对其执行相同的几个if
语句
或者使用某种数据结构来保存所有这些
id
和np
变量,这将极大地清理代码。减少代码的最简单方法是将8个id
变量转换为8个数组。大概是这样的:
int[] ids = new int[8];
// code to assign ids here
int np = 0, np2 = 0, np3 = 0, np4 = 0, np5 = 0;
do {
for (int id : ids)
if (id <= 15)
np++;
else if (id <= 30)
np2++;
else if (id <= 45)
np3++;
else if (id <= 60)
np4++;
else
np5++;
} while (np + np2 + np3 + np4 + np5 == 0);
int[]ids=newint[8];
//在此分配ID的代码
int np=0,np2=0,np3=0,np4=0,np5=0;
做{
for(int-id:ids)
if(id)这里要实现什么?请查找一些java容器作为变量名,许多条件看起来不像是编程解决方案,更像是由于没有在语言中使用“正确的单词”而导致的附加问题(这里是java)。经常帮助我们帮助初学者不仅缩短代码,而且了解要实现的任务是什么,因为有时候解决方案不是朝着错误的方向走一步…@Dilettant我喜欢“朝着错误的方向走一步”,所以我在中引用了你的话。:-)如前所述,研究重命名其中的一些变量;这使得阅读该代码变得非常困难。此外,我的建议是找到所有增加np1的条件并对它们进行分组;然后找到所有增加np2的条件并对它们进行分组,然后再对它们进行分组,等等。@Kalmino因此我的缩写为clean.nps可以用negate初始化ive的价值观……这是我从代码中感觉到的一个假设。