使用while时失败循环

时间:2017-07-12 17:59:14

标签: java while-loop

我的想法是这样的。

  1. 我有任何数字(十位数)

  2. 检查号码长度

  3. 如果长度为1则完成

  4. 如果长度不止一个(两个)我想做一个循环过程,直到数字的长度达到一个。 所以这就是逻辑

  5. 如果数字的长度超过一(2),我取数十的数值和一个数值。

  6. 然后我添加两个数字,

  7. 检查结果的长度,如果仍然是2重复程序

  8. 即数字为38,长度大于1。 Ten的值为3,One的值为8.我加上它们,3 + 8 = 11。

    11长度仍然不止一个。 Ten的值为1,One的值为1,加上它们,1 + 1 = 2。

    2长度是一个。循环结束。

    这是我尝试的代码,但它失败了(无限循环)

    hitung = 38
    hitungtxt = Integer.toString(hitung);
    jumkar2 = hitungtxt.length();
    
    while (jumkar2 > 1) {
        char hita = hitungtxt.charAt(0);
        char hitb = hitungtxt.charAt(1);
        int hitung1=(int)hita;
        int hitung2=(int)hitb;
        hitung=hitung1+hitung2;
        hitungtxt = Integer.toString(hitung);
        jumkar2 = hitungtxt.length();
    }
    

1 个答案:

答案 0 :(得分:1)

您的代码:

char hita = hitungtxt.charAt(0);
int hitung1=(int)hita;

这个号码将获得Ascii value。如果您想解决此问题,请尝试:int hita = Integer.parseInt(String.valueOf(hitungtxt.charAt(0)));

所以,你的最终代码应该是:

    int hitung = 38;
    String hitungtxt = Integer.toString(hitung);
    int jumkar2 = hitungtxt.length();

    while (jumkar2 > 1) {
        int hita = Integer.parseInt(String.valueOf(hitungtxt.charAt(0)));
        int hitb = Integer.parseInt(String.valueOf(hitungtxt.charAt(1)));
        hitung = hita + hitb;

        hitungtxt = Integer.toString(hitung);
        jumkar2 = hitungtxt.length();
    }

    System.out.println(hitungtxt);

希望它有所帮助!