下面的程序根据需要运行,但是如何减少if语句的数量。有人告诉我,如果您的函数包含2个或更多if语句,那么您做错了。有什么建议?我试过使用switch语句,但这没有用,因为大小写不能是布尔值。
for(int i = 1; i < 100; i++) { if(i % 10 == 3) { System.out.println("Fizz" + "(" + i + ") 3%10"); } if(i / 10 == 3) { System.out.println("Fizz" + "(" + i + ") 3/10"); } if(i % 10 == 5) { System.out.println("Buzz" + "(" + i + ") 5%10"); } if(i / 10 == 5) { System.out.println("Fizz" + "(" + i + ") 5/10"); } if(i / 10 == 7) { System.out.println("Fizz" + "(" + i + ") 7/10"); } if(i%10 == 7) { System.out.println("Woof" + "(" + i + ") 7%10"); } if(i % 3 == 0) { System.out.println("Fizz" + "(" + i + ") 3%==0"); } if(i % 5 == 0) { System.out.println("Buzz" + "(" + i + ")5%==0"); } if(i % 7 == 0) { System.out.println("Woof" + "(" + i + ")7%==0"); } if( (i % 7 !=0 ) && (i % 3 !=0 ) && (i % 5 !=0 ) && (i % 10 !=3) && (i % 10 !=5 ) && (i%10 !=7 ) ) System.out.println(i); }
如何为案例创建方法:
public void printIfMod(int value, int mod){ if (value % 10 == mod) System.out.println(...); } public void printIfDiv(int value, int div){ if (value / 10 == div) System.out.println(...); }
然后,不是一堆东西,而是if两个方法的调用集。您甚至可以创建一个调用上述两个方法的单个方法。
if
public void printIf(int value, int div){ printIfMod(value, div); printIfDiv(value, div); } for(int i = 1; i < 100; i++) { printIf(i, 3); printIf(i, 5); .... }
在上面的代码中,ifs对我来说,问题的数量比重复代码的数量少。
ifs