Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我怎样才能减少这种重复?(爪哇)_Java - Fatal编程技术网

Java 我怎样才能减少这种重复?(爪哇)

Java 我怎样才能减少这种重复?(爪哇),java,Java,所以,在我的一个代码中有一个“do-while”语句,正如你所看到的,我在其中不断重复if语句。我怎样才能减少它? 我是新手,我想不出更好的方法来解决这个问题 do { if (id1 <= 15) { np++; }if(id2<=15){ np++;} if(id3<=15){ np++;} if(id4<=15){

所以,在我的一个代码中有一个“do-while”语句,正如你所看到的,我在其中不断重复if语句。我怎样才能减少它? 我是新手,我想不出更好的方法来解决这个问题

    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的价值观……这是我从代码中感觉到的一个假设。