为什么我的程序抛出 java.util.InputMismatchException?
Why is my program throwing java.util.InputMismatchException?
我的代码出现错误:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Hello.main(Hello.java:22)
我的示例的完整代码如下:
import java.util.Scanner;
import java.util.*;
public class Hello {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] friends = new String[n];
HashMap<String, Integer> map = new HashMap<String, Integer>();
for(int i = 0; i < n; i++)
{
friends[i] = sc.next();
map.put(friends[i], i);
}
int[] money = new int[n];
for(int i = 0; i < n; i++)
{
int idx = map.get(sc.next());
int gift = sc.nextInt();
int M = sc.nextInt();
int reminder =gift % M;
int dev = gift / M;
money[idx] = reminder;
money[idx] -= gift;
}
}
}
您没有提供足够的输入。循环:
for(int i=0;i<n;i++)
{
int idx = map.get(sc.next());
int gift = sc.nextInt();
int M = sc.nextInt();
int reminder =gift%M;
int dev = gift/M;
money[idx]=reminder;
money[idx]-=gift;
}
将 运行 3 次,根据您的输入,并且在每个 运行 中,它将需要一个字符串和两个整数。您只提供一次此输入。
import java.util.HashMap;
import java.util.Scanner;
public class TestProgram {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Enter a number of friends you want to enter:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int []money=new int[n];
HashMap<String, Integer> map = new HashMap<String, Integer>();
for(int i=0;i<n;i++)
{
System.out.println("Enter a name of ther friends you want to enter:");
String name =sc.next();
map.put(name, i);
System.out.println("Enter the number of gifts you want to give:");
int gift = sc.nextInt();
System.out.println("Enter the money you want to spend on the gift:");
int M = sc.nextInt();
int reminder =gift%M;
int dev = gift/M;
money[i]=reminder;
}
}
}
我的代码出现错误:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Hello.main(Hello.java:22)
我的示例的完整代码如下:
import java.util.Scanner;
import java.util.*;
public class Hello {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] friends = new String[n];
HashMap<String, Integer> map = new HashMap<String, Integer>();
for(int i = 0; i < n; i++)
{
friends[i] = sc.next();
map.put(friends[i], i);
}
int[] money = new int[n];
for(int i = 0; i < n; i++)
{
int idx = map.get(sc.next());
int gift = sc.nextInt();
int M = sc.nextInt();
int reminder =gift % M;
int dev = gift / M;
money[idx] = reminder;
money[idx] -= gift;
}
}
}
您没有提供足够的输入。循环:
for(int i=0;i<n;i++)
{
int idx = map.get(sc.next());
int gift = sc.nextInt();
int M = sc.nextInt();
int reminder =gift%M;
int dev = gift/M;
money[idx]=reminder;
money[idx]-=gift;
}
将 运行 3 次,根据您的输入,并且在每个 运行 中,它将需要一个字符串和两个整数。您只提供一次此输入。
import java.util.HashMap;
import java.util.Scanner;
public class TestProgram {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Enter a number of friends you want to enter:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int []money=new int[n];
HashMap<String, Integer> map = new HashMap<String, Integer>();
for(int i=0;i<n;i++)
{
System.out.println("Enter a name of ther friends you want to enter:");
String name =sc.next();
map.put(name, i);
System.out.println("Enter the number of gifts you want to give:");
int gift = sc.nextInt();
System.out.println("Enter the money you want to spend on the gift:");
int M = sc.nextInt();
int reminder =gift%M;
int dev = gift/M;
money[i]=reminder;
}
}
}