这个问题在这里已经有答案了:
错误表示在尝试将字符串转换为双精度时已在main中定义变量,然后表示未知符号(3个答案)
“错误:已在方法main(字符串[])中定义了变量键盘”(3个答案)
java:变量已经在方法中定义(4个答案)
java:变量已经在方法main中定义(2个答案)
java编译器错误变量已定义[关闭](3个答案)
15天前关门了。
问题
程序接收一个非负整数序列作为输入,每个数字写在单独的一行上。序列以数字0结束,读取后程序必须完成其工作并打印序列长度(不包括终止数字0)。
不需要读取0后面的数字。
输入格式
输入一个整数序列,以数字0结尾(数字0本身不包括在序列中)。
约束条件
序列中的每个数字都是整数,正数,不超过1000。
输出格式
打印问题的答案。
样本输入0
1
7
9
0
5
样本输出0
三
我的代码
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String result=("");
do{
int a = scan.nextInt();
int b=a;
String s=String.valueOf(b);
result = (result + s);
}while(a>0);
int length = result.length();
System.out.println(length);
}
}
输出告诉我们
Solution.java:14: error: variable a is already defined in method main(String[])
int a = scan.nextInt();
^
1 error
1条答案
按热度按时间2hh7jdfx1#
您必须在while循环之外定义变量,否则错误消息会告诉您,您将重新定义它们。
只是放
然后在循环中引用这些变量。
此外,还需要一个guard子句来附加到结果中,否则表示序列结束的零将包含在计数中。
此外,如果只想计数到零,则不需要结果变量,然后打印其长度,但可以使用整数进行计数,并在每次循环执行时将该整数增加1。
编辑:示例实现