Java 输出未显示
我正在编写一个简单的java程序来寻找最小的数字,它可以被1到20之间的所有数字整除 我编写了以下代码:Java 输出未显示,java,conditional-breakpoint,Java,Conditional Breakpoint,我正在编写一个简单的java程序来寻找最小的数字,它可以被1到20之间的所有数字整除 我编写了以下代码: package smallmultiple; public class SmallMultiple { public static void main(String[] args) { int sml = 0; outerloop: for (int i = 40; i < 100000; i++) {
package smallmultiple;
public class SmallMultiple {
public static void main(String[] args) {
int sml = 0;
outerloop:
for (int i = 40; i < 100000; i++) {
int j=1;
do {
if(i%j==0)
j++;
} while(j<21);
if(j==20) {
sml=i;
break outerloop;
}
}
System.out.println(sml);
}
}
package-smallmultiple;
公共类{
公共静态void main(字符串[]args){
int sml=0;
外部环路:
对于(int i=40;i<100000;i++){
int j=1;
做{
如果(i%j==0)
j++;
}而(j您可以尝试这个比您的解决方案快一点的方法:-
for(int i = 190; ; i += 190) {
if(i % 3 == 0
&& i % 4 == 0
&& i % 6 == 0
&& i % 7 == 0
&& i % 8 == 0
&& i % 9 == 0
&& i % 11 == 0
&& i % 12 == 0
&& i % 13 == 0
&& i % 14 == 0
&& i % 15 == 0
&& i % 16 == 0
&& i % 17 == 0
&& i % 18 == 0
&& i % 20 == 0) {
System.out.println(i);
break;
}
}
你也可以看看这个。只有当i
完全可以被j
整除时,你才增加j
。难道你不应该中断或退出do大概是
if(i%j==0) {
j++;
}
else {
break;
}
它很简单。让我解释一下你的循环。首先,i=40
和j=1
,没问题。然后j++
。接下来i=40
和j=2
,仍然正确。然后j++
再次。现在i=40
,j=3
i%j!=0
e、 j=3
仍然满足您的循环(j<21)
然后它将永远循环。这就是您无法获得任何输出的原因。您可以使用IDE调试来发现此错误。对不起,我的英语不好。在java中,为了尊重面向对象的最佳实践,不建议用户标签,请尝试以下方法:
public class NumberTool {
public static void main(String[] args) {
System.out.println("Smallest number is : " + getSmallestNumberDividedByOneToTwnety());
}
public static int getSmallestNumberDividedByOneToTwnety() {
for ( int i = 40; i <= 2147483647; i++) {
if (isNumberDivdedByOneToTwenty(i)) {
return i;
}
}
return 0;
}
public static boolean isNumberDivdedByOneToTwenty(int numberToTest) {
for (int i = 1; i <= 20; i++) {
if (numberToTest % i != 0) {
return false;
}
}
return true;
}
}
public class NumberTool{
公共静态void main(字符串[]args){
System.out.println(“最小的数字是:“+GetSmallestNumberDividedByOneToTwnity());
}
公共静态int GetSmallestNumberDividedByOneToToTownity(){
对于(inti=40;我能告诉我这里的'outerloop'是什么吗?它是变量还是其他什么?