为什么在if语句之后这段代码的输出变得混乱?

时间:2015-03-01 12:16:03

标签: java

import java.io.*;
import java.lang.System;
import java.util.Scanner;

public class Writingclean{
    public static void main(String args[]){
    Scanner input = new Scanner(System.in);

    try{

        System.out.println("File Name:");
        String FileName = input.next();
        FileWriter fw = new FileWriter( FileName + ".txt");
        PrintWriter pw = new PrintWriter(fw);


        System.out.println("How many questions do you want?");

        String y = input.next();
        int NumberofQuestions = Integer.parseInt(y);

        int QuestionCounter = 1;
        int x = 0;
        while(x < NumberofQuestions){


        System.out.println("Question " + QuestionCounter + ":"); String    Question = input.nextLine();  
        System.out.println("Option 1:"); String Op1 = input.nextLine();
        System.out.println("Option 2:"); String Op2 = input.nextLine(); 
        System.out.println("Option 3:"); String Op3 = input.nextLine();
        System.out.println("Correct Answer (Option Number):"); String An1 = input.nextLine();



         pw.println(Question);
         pw.println(Op1);
         pw.println(Op2);
         pw.println(Op3);
         pw.println(An1);

         x++;
         QuestionCounter++;


    }
         pw.close();    
    }catch (IOException e){
        System.out.println("Invalid File Name!");
    }



    }
}

我目前正在开发一个学习类型的应用程序并遇到过这个问题:

我想要它,以便用户可以选择他们想要的问题,因此while语句(如果有更好的方法,请告诉我)。但是,在while语句之后,consle似乎跳过了'input.nextLine();'。意思是没有选择的问题。

有什么方法可以解决这个问题吗?

输出如下:

档案名称: 示例 你想要几个问题? 示例 问题1: 选项1:

2 个答案:

答案 0 :(得分:0)

您可以使用BufferedReader而不是扫描仪类 语法如下

BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
String x=input.readLine();

确保导入java.io.BufferedReader和java.io.InputStreamReader类。 还处理IOException。

答案 1 :(得分:0)

似乎修复它的方法是使所有输入都以相同的方式。意味着所有字符串都等于:

input.nextLine();

而不是某些

input.next();