2015-02-11 190 views
3

我只是试图调用每个开关的主要方法,当它发生时,但我只是每次尝试调用任何方法时都会收到错误消息,而不是尝试返回任何东西。恩。如果用户输入一个或一个我想打电话给Add方法主要Java错误:类中的方法不能应用于给定的类型

public static void main(String[] args) 
{ 
    char character; 

    Scanner keyboard = new Scanner(System.in); 

    while (character != 'E' || character != 'e') 
    { 

    System.out.println(" A:Addition \n S:Subtraction \n M:Multiplication \n D:Division \n R:Modulus \n E:exit"); 
    switch (character) 
    { 
     case 'a': 
     case 'A': 
      System.out.println("your choice A"); 
      add(); 
      break; 

     case 's': 
     case 'S': 
      System.out.println("your choice S"); 
      subtraction(); 
      break; 

     case 'm': 
     case 'M': 
      System.out.println("your choice M"); 
      multiplication(); 
      break; 

     case 'd': 
     case 'D': 
      System.out.print("your choice D"); 
      division(); 
      break; 

     case 'r': 
     case 'R': 
      System.out.println("your choice R"); 
      modulus(); 
      break; 

     default: 
      System.out.println("Error: please enter a valid letter"); 
      break; 

    } 
    } 
} 
public static void add(Scanner keyboard) 
{ 
    int a,b; 
    //get integer 1 
    System.out.println("enter integer 1"); 
    a = keyboard.nextInt(); 

    //get integer 2 
    System.out.println("enter integer 2"); 
    b = keyboard.nextInt(); 

    int total = a + b; 
    System.out.println(a + "plus" + b + "is" + total); 
} 
public static void subtraction(Scanner keyboard) 
{ 
    int a,b; 

    //get integer 1 
    System.out.println("enter integer 1"); 
    a = keyboard.nextInt(); 

    //get integer 2 
    System.out.println("enter integer 2"); 
    b = keyboard.nextInt(); 
    int total = a-b; 
    System.out.println(a + "minus" + b + "is " + total); 
} 
public static void multiplication(Scanner keyboard) 
{ 
    int a,b; 
    //get integer 1 
    System.out.println("enter integer 1"); 
    a = keyboard.nextInt(); 

    //get integer 2 
    System.out.println("enter integer 2"); 
    b = keyboard.nextInt(); 

    int total = a*b; 
    System.out.println(a + "times" + b + "is " + total); 
} 
public static void division(Scanner keyboard) 
{ 
    int a,b; 

    //get integer 1 
    System.out.println("enter integer 1"); 
    a = keyboard.nextInt(); 

    //get integer 2 
    System.out.println("enter integer 2"); 
    b = keyboard.nextInt(); 
    int total = a/b; 
    System.out.println(a + "divided" + b + "is " + total); 
} 
public static void modulus(Scanner keyboard) 
{ 
    int a,b; 

    //get integer 1 
    System.out.println("enter integer 1"); 
    a = keyboard.nextInt(); 

    //get integer 2 
    System.out.println("enter integer 2"); 
    b = keyboard.nextInt(); 
    int total= a%b; 
    System.out.println(a + "modulus" + b + "is " + total); 

    System.out.println("The program is terminating"); 
} 

}

+0

你得到这个错误的哪一行? – APerson 2015-02-11 03:05:36

+1

你定义add来接受一个'Scanner'对象,但是没有任何参数调用它。 – chris 2015-02-11 03:05:51

回答

0

您已经定义这需要扫描仪作为参数的方法,但您呼叫与无参数的方法。

0

您使用的所有方法应该会在没有参数的情况下收到Scanner对象。

例如你打电话add();而它的签名是

public static void add(Scanner keyboard) 

这就是为什么你的错误。

取而代之,使用add(keyboard)并重复相同的减法,乘法,除法和模量方法。

使您switch现在看起来像

switch (character) { 
    case 'a': 
    case 'A': 
     System.out.println("your choice A"); 
     add(keyboard); 
     break; 

    case 's': 
    case 'S': 
     System.out.println("your choice S"); 
     subtraction(keyboard); 
     break; 

    case 'm': 
    case 'M': 
     System.out.println("your choice M"); 
     multiplication(keyboard); 
     break; 

    case 'd': 
    case 'D': 
     System.out.print("your choice D"); 
     division(keyboard); 
     break; 

    case 'r': 
    case 'R': 
     System.out.println("your choice R"); 
     modulus(keyboard); 
     break; 

    default: 
     System.out.println("Error: please enter a valid letter"); 
     break; 

} 
1

你调用该方法,但你不包括参数

看看这个。

public static void add(Scanner keyboard) 

你有一个说法,所以调用此方法时

所以

必须调用这样的方法,你必须包含一个参数。

add(keyboard); 
0

您缺少方法调用中的参数。

case 'a': 
    case 'A': 
     System.out.println("your choice A"); 
     add(keyboard); // Add arguments. 
     break; 
相关问题