1到30之间的数字不可分辨3

sho*_*qie 3 java math

所以我几天前就开始学习Java了,除了这个令我难以置信的练习外,我的表现非常好.因此,练习是"编写一个程序,显示从1到30不可分割的所有数字3".所以这很容易:

class numbers {
    public static void main (String args[]) {
        for (int i = 0; i <=30; i++){
            switch(i % 3){
                case 0 :
                    break;
                default :
                    System.out.println(i);
                    break;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

除了其中一个变体之外," break检测到3之后的可用性.现在我不确定break上面的代码中使用的是否是正确的,因为它是其中的一部分switch.我想知道是否有其他方法可以做到这一点.

Ber*_*eri 5

一些修复:

  1. 类名应以大写字母,名称类开头Numbers,而不是numbers
  2. 从1开始迭代,而不是从0开始,因为你在范围[1..30]中显示数字.
  3. 因为在这里你只有2种可能性(是或不是不可分割的),所以用if语句替换switch.开关更适合各种条件.
  4. 最重要的.使用break会让你离开循环.使用continue将跳过此循环并转到下一次迭代.

所以现在你的代码应该看起来短而干净:)

class Numbers {
    public static void main (String args[]) {
        for (int i = 1; i <=30; i++){
            if(i % 3 == 0){
             continue;
            }
             System.out.println(i);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

或者你可以使用更短的版本:

for (int i = 1; i <=30; i++){
    if(i % 3 != 0){
       System.out.println(i);
    }
}
Run Code Online (Sandbox Code Playgroud)