2017-11-17 3 views
-4

この単純なコードを実行しようとしていますが、この例外が発生し、解決できない場合は、他の投稿でいくつか解決策を試しましたが、結果はありません。Scanner in Javaの例外に直面

import java.text.DecimalFormat; 
import java.util.*; 

class test{ 

    public static void main(String args[]){ 


      Scanner sc = new Scanner(System.in); 

      for(int i=0;i<4;i++){ 

       int a = sc.nextInt(); 
       String s = sc.next(); 
       int b = sc.nextInt(); 

       if(s.equals("*")){ 
        System.out.println(a*b); 
       } 
       else if(s.equals("+")){ 
        System.out.println(a+b); 
       } 
       else if(s.equals("-")){ 
        System.out.println(a-b); 
       } 

       else if(s.equals("/")){ 
        double a1 = a; 
        double b1 = b; 

        System.out.println(new DecimalFormat("##.##").format(a1/b1)); 
       } 

     }    
    } 
} 

例外を助ける:

Exception in thread "main" java.util.NoSuchElementException 

at java.util.Scanner.throwFor(Scanner.java:907) 
at java.util.Scanner.next(Scanner.java:1416) 
at test.main(test.java:14) 
+3

スキャナは、区切り文字で区切られたトークンを反復処理しています。 Scannerのデフォルトの区切り文字は1つ以上の空白です。したがって、1 + 2は1つのトークンを表し、1 + 2は3つのトークンを表します(前後にスペースがあるため)。 – Pshemo

+0

@azurefrog私はこれらの操作を試してみます:1 + 2秒1 1 3 3 1 1/5 4分2 1各行に1つずつ – azert123

+0

@Pshemoこれを実行しましたが、結果はありません – azert123

答えて