

leap_year.java

[code]

    class leap_year{
        int dim;
        int uruudosi(int yy);
        if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
            dim = 29; // うるう年
        else
            dim = 28;
        }
        return dim;
    }
    
[/code]

cmdでのエラー

[code]

    leap_year.java:7: エラー: 型の開始が不正です
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
    ^
    leap_year.java:7: エラー: 型の開始が不正です
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
       ^
    leap_year.java:7: エラー: ')'がありません
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
        ^
    leap_year.java:7: エラー: ';'がありません
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
            ^
    leap_year.java:7: エラー: 型の開始が不正です
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
               ^
    leap_year.java:7: エラー: <identifier>がありません
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                ^
    leap_year.java:7: エラー: ';'がありません
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                   ^
    leap_year.java:7: エラー: 型の開始が不正です
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                      ^
    leap_year.java:7: エラー: ';'がありません
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                             ^
    leap_year.java:7: エラー: <identifier>がありません
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                                                 ^
    leap_year.java:7: エラー: 型の開始が不正です
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                                                    ^
    leap_year.java:7: エラー: <identifier>がありません
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                                                       ^
    leap_year.java:7: エラー: ';'がありません
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                                                          ^
    leap_year.java:7: エラー: 型の開始が不正です
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                                                            ^
    leap_year.java:7: エラー: <identifier>がありません
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                                                             ^
    leap_year.java:7: エラー: ';'がありません
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                                                              ^
    leap_year.java:8: エラー: 型の開始が不正です
                    dim = 29; // うるう年
                        ^
    leap_year.java:8: エラー: <identifier>がありません
                    dim = 29; // うるう年
                         ^
    leap_year.java:9: エラー: 型の開始が不正です
                else
                ^
    leap_year.java:9: エラー: ';'がありません
                else
                    ^
    leap_year.java:10: エラー: 型の開始が不正です
                    dim = 28;
                        ^
    leap_year.java:10: エラー: <identifier>がありません
                    dim = 28;
                         ^
    leap_year.java:12: エラー: class、interfaceまたはenumがありません
            return dim;
            ^
    leap_year.java:13: エラー: class、interfaceまたはenumがありません
    }
    ^
    エラー24個
    
[/code]

このコンパイルエラーをどう直したらいいかがわかっていないです。どのように修正したらいいでしょうか。


CC BY-SA 3.0
2015-07-09T09:50:09.477
12207
2016-12-04T05:43:13.420
2016-12-04T05:43:13.420
754
10289
question
java
leap_year.javaにコンパイルエラーが出る


とりあえず動かしてみました。  
dim？？？Java未経験者でしょうか？eclipseとか使ってちょ  
[これはリンク！Wandboxという便利なサイトで実動を確認したよ！！！](http://melpon.org/wandbox/permlink/vZo4IYF6EmKFOuCr)

この回答でよかったらベストアンサーにしてたもれ

[code]

    class LeapYear {
    
        public static void main(String[] args) {
            System.out.println(uruudoshi(2008));
        }
    
        private static int uruudoshi(int year) {
    
            int dim = 0;
            System.out.println("判定対象は:" + year);
    
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
                dim = 29; // うるう年
                System.out.println("うるう年っぽい");
            } else {
                dim = 28;
                System.out.println("うるう年じゃないっぽい");
            }
    
            return dim;
        }
    }
    
[/code]


CC BY-SA 3.0
2015-07-10T09:40:08.577
12252
2015-07-10T09:40:08.577
8918
12207
answer


うるう年判定については、ここスタックオーバーフローでも幾つか質問がでています。  
そのなかの方法と、この質問にあったコードの方法の動作比較をしてみました。

[code]

    // See http://ja.stackoverflow.com/questions/12196/
    //     http://ja.stackoverflow.com/questions/12207/
    
    import java.util.GregorianCalendar;
    
    public class LeapYear {
    
        // java のメソッドを利用したうるう年の判定
    
        static boolean isLeapYear(int year) {
            GregorianCalendar calendar = new GregorianCalendar();
            return calendar.isLeapYear(year);
        }
    
        // 自作のうるう年の判定
        static int uruudosi(int year) {
            int days2 = 28; // うるう年でないときの２月の日数
            if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
                days2 = 29; // うるう年のときの２月の日数
            }
            return days2;
        }
    
        static public void main(String args[]) {
            // 2 つのうるう年判定の結果をテストする。
            for (int i = 1900; i < 2100; i++) {
                boolean leap = isLeapYear(i);
                int days2 = uruudosi(i);
                if (leap != (days2 == 29)) {
                    System.out.println("Error: " + i + ": leap=" + leap + ", day2 =" + days2);
                }
            }
        }
    }
    
[/code]


CC BY-SA 3.0
2015-07-10T22:52:28.853
12266
2015-07-10T22:52:28.853
2987
12207
answer


これを動くように改善するなら次のような感じでしょうか。

[code]

    class leap_year{
        int dim;
        int uruudosi(int year){
        if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
            dim = 29; // うるう年
        }else{
            dim = 28;
        }
        return dim;
       }
    }
    
[/code]

インデントはぐちゃぐちゃですが、こうなりました。  
更に改善するには、

[code]

    public class leap_year{
        public static int uruudosi(int year){
    //インスタンスを生成せずにアクセスできる
            int dim;//フィールドにする必要はない
            if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                    dim = 29; // うるう年
              }else{
                    dim = 28;
            }
              return dim;
        }
     }
    
[/code]

ですかね。


CC BY-SA 3.0
2016-06-10T09:34:08.360
26622
2016-06-21T00:52:16.700
2016-06-21T00:52:16.700
15185
15185
12207
answer