

繰り返し処理で配列の要素が3の場合はcontinue文を使って処理を飛ばしたいのですがコンパイルエラーが出て「continueはループの外側では使用できない」と表示されます。for文を使うクラスとは別のクラスにはcontinue文は使用できないのでしょうか。

[code]

    public class Main {
    
        public static void main(String[] args) {
    
            checkService aaa = new checkService();
    
            int hairetu[] = {1,2,3,4,5};
    
            for (int i = 0; i < hairetu.length; i++) {
                aaa.checkContuine(i);
            }
        }
    }
    
    public class checkService {
    
        public void checkContuine(int i){
    
            if(i == 3){
                continue;
            }
    
            if(i == 4){
                System.out.println("4です");
            }else{
                System.out.println("3と4以外の数値です");
            }
        }
    }
    
[/code]


CC BY-SA 3.0
2017-07-25T14:52:26.780
36668
2017-07-25T15:19:51.273
17348
question
java
メソッドの呼び出し先でcontinue文が使えない。


使用できません。何故かといえば、`checkService.checkContuine`が本当にループの中で呼ばれるかがコンパイラには分からないからでしょう。

`i`が3の時に出力を抑制したいという事なら、単に`return`すれば事足ります。

例：

[code]

    class Main {
        public static void main(String[] args) {
            checkService aaa = new checkService();
            int hairetu[] = {1,2,3,4,5};
    
            for (int i = 0; i < hairetu.length; i++) {
                aaa.checkContuine(i);
            }
        }
    }
    
    class checkService {
        public void checkContuine(int i){
            if(i == 3) return;
    
            if(i == 4){
                System.out.println("4です");
            }else{
                System.out.println("3と4以外の数値です");
            }
        }
    }
    
[/code]


CC BY-SA 3.0
2017-07-25T15:14:48.220
36669
2017-07-25T15:19:51.273
2017-07-25T15:19:51.273
13199
13199
36668
answer