多个整数之和

时间:2016-04-09 19:56:41

标签: java

我是编程和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);

    }
}

如果有任何建议使这个程序的性能更好,那将会有所帮助。

3 个答案:

答案 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]