[问题] 请问一题java

楼主: OCEANSAE (OCEANSAE)   2019-03-25 10:46:34
import java.util.Scanner;
public class Q1 {
public static void main(String[] args) {
String str;
Scanner input = new Scanner(System.in);
while(true) {
str = input.nextLine();
if (str == "0")
break;
else {
String arr[] = str.split(" ");
int total = 0;
for (int i = 0; i < arr.length; i++) {
if ('0' <= arr[i].charAt(0) && arr[i].charAt(0) <= '9') {
int int0 = Integer.parseInt(arr[i],10);
int reversedInt = reverse(int0);
total += reversedInt;
}
}
String tot = String.format("%04d", total);
System.out.println(tot);
}
}
input.close();
}
public static int reverse(int integer) {
int result=0;
while(true)
{
int n= integer % 10;
result=result*10+n;
integer = integer / 10;
if (integer == 0)
{
break;
}
}
System.out.println(result);
}
}
想请如果出以下错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
This method must return a result of type int
at Q1.reverse(Q1.java:30)
at Q1.main(Q1.java:18)
请问为什么这样写出来的result不是整数?
以下是题目:
请根据以下规则计算结果:
*将句子中的数字取出来反转并加总;
*加总结果若超过千位数则取到千位数,不到千位数则以 0 补
之。
输入说明:输入多笔测资,直到输入 0 结束程式。每笔测资是一个
句子。
输出说明:根据上述规则输出最后结果。
作者: pttworld (批踢踢世界)   2019-03-25 11:39:00
你的if后面加了分号
楼主: OCEANSAE (OCEANSAE)   2019-03-26 12:52:00
谢谢你,我又修改了程式码,却发现了其它问题 我等等改个内文问不知道可不可以在麻烦大大解答
作者: pttworld (批踢踢世界)   2019-03-26 16:37:00
你的reverse没有回传值
楼主: OCEANSAE (OCEANSAE)   2019-03-26 18:22:00
发现了,谢谢!
作者: qrtt1 (有些事,有时候。。。)   2019-03-26 18:48:00
你有使用 debugger 去看自己的问题吗?

Links booklink

Contact Us: admin [ a t ] ucptt.com