为什么以下方法不能用于打印小于或等于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);
}
}
答案 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));
是其中一个问题。当i
为10
时,str.charAt(0)
会评估具有ascii值1
且49
评估字符str.charAt(1)
的字符0
其ascii值为48
,产生的总和为97
而不是所需的1
。
相反,您可以使用模数运算符根据需要去除数字。例如:int sum = ( i / 10 ) + (i % 10);
。
*此外,i
循环中for
的范围应该根据其他用户的评论进行调整。