我是编程和Java的新手,我有这个程序可以计算输入的总和,但是我需要通过输入“=”结束这个循环,有什么建议吗?
import java.util.Scanner;
public class SumOfNum {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner (System.in);
int input;
int sum = 0;
String s = "=";
System.out.println("Enter Num");
for (int i=0; i<100; i++) {
input=sc.nextInt();
sum+=input;
if( ){break;}
}
System.out.println(sum);
}
}
如果有任何建议使这个程序的性能更好,那将会有所帮助。
答案 0 :(得分:1)
您需要将代币读作String
(s)才能测试input
是否为=
。像,
Scanner sc = new Scanner(System.in);
int sum = 0;
String input;
do {
System.out.println("Enter Num");
input = sc.next();
if (input.matches("\\d+")) { // <-- sanity check for digits.
try {
sum += Integer.parseInt(input);
} catch (Exception ignored) {
}
}
} while (!input.equals("="));
System.out.println(sum);
答案 1 :(得分:1)
您可以尝试使用sc.nextLine()读取字符串,并使用string.matches方法确定输入是数字还是'='。匹配数字How to check if user input is String, double or long in Java的示例:
String s=null;
boolean validInput=false;
do{
s= scannerInstance.nextLine();
if(s.matches("\\d+")){// checks if input only contains digits
validInput=true;
}
else{
// invalid input
}
}while(!validInput);
答案 2 :(得分:1)
我认为你应该尝试以下。它应该与您尝试的结果相同:
collectionCopy[1][2]