安卓逻辑求解,为什么我的for循环不一直执行?

public static int CharToHex(char Char) {

    if (Char >= '0' && Char <= '9')
        return Char - '0';
    else if (Char >= 'A' && Char <= 'F')
        return Char - 'A' + 10;
    else if (Char >= 'a' && Char <= 'f')
        return Char - 'a' + 10;
    else
        return 0;
}

// 数据处理
public static String Change1(String str, int len) {
    String str1 = "p1r!p1r003B1s!p2r!p2r00003!p1r!p1r001A1s!p2r!p2r00003!"
            + "p1r!p1r003B1s!p2r!p2r00003!p1r!p1r003B1s!p2r!p2r00003!p1r!p1r001E1v!p1r!p1r001E1v!";

    String hexString = str1.replace(" ", "");
    String ret = "";
    char[] hexChars = hexString.toCharArray();
    for (int i = 0; i < hexChars.length;) {
        if ((hexChars[i] == 'p') && (hexChars[i + 1] == '1')
                && (hexChars[i + 2] == 'r') && (hexChars[i + 3] == '!')) {
            String p = Integer.toString((CharToHex(hexChars[i + 7]) << 12)
                    | (CharToHex(hexChars[i + 8]) << 8)
                    | (CharToHex(hexChars[i + 9]) << 4)
                    | CharToHex(hexChars[i + 10]));
            i = i + 14;
            return p;
        } else {
            i = i + 1;
        }
    }
    return null;

}
我打断点试过,程序只能执行一次!当i=i+14;这句话执行完之后并不能赋给for的初始 ,循环执行,这是为什么呀?

i = i + 14之后为啥return 了,return之后就不在执行该方法了

i = i + 14;之后i的值超出了数组长度,所以就退出循环了

而且for循环中使用return,那么肯定直接退出这个方法了

首先你要明白returnn的意思;
return是终结方法的意思,也就是说
你的程序运行到return p的时候就会跳出方法。
break和continue是作用域循环,return是作用于整个方法。

如果有帮助,希望结帖

return 后面的语句都不能执行,直接返回函数