70984


引数と実行結果が同じになってしまいます。  
デバッグで止まるのに、値がかわらないのはどうしてでしょうか？  
エラーはでておりません。  
おしえていただきたいです。

* * *

**実行結果**

[code]

    20092812345
    
[/code]

**ソースコード**

[code]

    public String net(String in) {
        char[] result = in.toCharArray();
    
        for(int i = '0'; i < result.length; i++)
    
            if(result[i] == '0') {
                result[i] = '9';
            }else {
                --result[i];
            }
    
        String result01 = String.copyValueOf(result);
    
        return result01;
    }
    
    class main {
        public static void main(String[] args) {
            angouka test01 = new angouka();
            System.out.println(test01.net("20092812345"));
    
        }
    }
    
[/code]


CC BY-SA 4.0
2020-10-07T05:40:57.403
70983
2020-10-07T06:10:56.853
2020-10-07T05:45:54.600
3060
32774
question
java
javaのif文について


`for`文の範囲が`'0'`からになっているのが原因です。  
下記の修正をすると正しく動くはずです。

修正前: `for(int i = '0'`  
修正後: `for(int i = 0`

修正後の出力結果: `19981701234`

char型の'0'とint型の0は[違うもの](https://qiita.com/nkojima/items/d358f99efa71655911ea)です。  
ご興味がありましたらリンク先のQiita記事などを取っ掛かりにしてchar型とは何かを勉強してみてください。


CC BY-SA 4.0
2020-10-07T06:10:56.853
70984
2020-10-07T06:10:56.853
9820
70983
answer