Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java程序过早地退出程序_Java_Java.util.scanner - Fatal编程技术网

Java程序过早地退出程序

Java程序过早地退出程序,java,java.util.scanner,Java,Java.util.scanner,我需要为我的自动机类构建一个简单的自动机。我正在使用Java,我一辈子都不明白为什么我的程序总是过早退出。我试过调试它,到处都有print语句来找出它在哪里停止,虽然我知道它在哪里停止,但我没有看到任何会使程序停止工作的东西。停止发生在第27行(在我“输入一串数字…”的右侧)。 了解我可能很简单,但我无法理解这一点 import java.util.*; public class hw1 { public static void main(String[] args) { Scanner

我需要为我的自动机类构建一个简单的自动机。我正在使用Java,我一辈子都不明白为什么我的程序总是过早退出。我试过调试它,到处都有print语句来找出它在哪里停止,虽然我知道它在哪里停止,但我没有看到任何会使程序停止工作的东西。停止发生在第27行(在我“输入一串数字…”的右侧)。
了解我可能很简单,但我无法理解这一点

import java.util.*;
public class hw1 {
public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    System.out.println("Please indicate the number of states");
    int numState = input.nextInt();
    int[] state = new int[numState];
    boolean[] accept = new boolean[numState];
    for (int i = 0; i < numState; i++) {
        System.out.println("Is the state q" + (i + 1) + " a final state? (Answer 1 for yes; 0 for no)");
        int finalState = input.nextInt();
        if (finalState == 1)
            accept[i] = true;
    } // for
    System.out.println("Enter the number of symbols s: ");
    int numSym = input.nextInt();

    int[][] next = new int[numState][numSym];
    for (int i = 0; i < numState; i++) {
        for (int j = 0; j < numSym; j++) {
            System.out.println("What is the number for the next state for q" + i + " when it gets symbol " + j);
            next[i][j] = input.nextInt();
        }//nested for
    }//for

    String digits = input.nextLine();
    System.out.print("Enter a string of digits (0-9) without spaces to test:");

    int[] digitArray = new int[digits.length()];
    for (int i = 0; i < digits.length(); i++) {
        digitArray[i] = digits.charAt(i);
    }
    for (int i = 0; i < digits.length(); i++) {
        System.out.print(digitArray[i] + " ,");
    }
    System.out.println("end of program");
}// main;

}// class
import java.util.*;
公共级hw1{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“请注明州数”);
int numState=input.nextInt();
int[]状态=新的int[numState];
布尔值[]接受=新布尔值[numState];
对于(int i=0;i
将代码更改为:

input.nextLine();
System.out.print("Enter a string of digits (0-9) without spaces to test:");
String digits = input.nextLine();

这将获取并忽略调用
nextInt()

后流中留下的换行符。我已将Print语句放在nextLine语句之后,但它似乎仍然不存在work@OmarKhalik-检查我的更新答案。我说*添加新的下一行()