打印小于或等于56的两位数字,数字之和大于10 JAVA

时间:2017-01-05 16:21:44

标签: java

为什么以下方法不能用于打印小于或等于56的两位数字,并且JAVA中的数字总和大于10

        for (int i = 10; i <= 99; i++) {
        String str = Integer.toString(i);
        int sum = (str.charAt(0) + str.charAt(1));
        if (sum > 10 && sum<=56) {
            System.out.println("The first operation " + sum);
            }
        }

2 个答案:

答案 0 :(得分:0)

由于你知道任何大于56的数字都不能通过你的标准,你需要将你的循环从10改为56.因此,你可以排除if语句的第二部分。将for循环更改为:

    for (int i = 10; i <= 56; i++) {

和你的if语句:

    if (sum > 10) {

答案 1 :(得分:0)

第三行:int sum = (str.charAt(0) + str.charAt(1));是其中一个问题。当i10时,str.charAt(0)会评估具有ascii值149评估字符str.charAt(1)的字符0其ascii值为48,产生的总和为97而不是所需的1

相反,您可以使用模数运算符根据需要去除数字。例如:int sum = ( i / 10 ) + (i % 10);

*此外,i循环中for的范围应该根据其他用户的评论进行调整。