簡體   English   中英

我如何詢問用戶是否要為文件添加新記錄?

[英]How can I question the user if they want to add a new record for a file?

我的代碼只是要求用戶輸入文件的數據。 我想每次都問他們是否想在執行此過程之前添加新記錄。 以下是我的代碼。

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;


public class Assign11 {

    public static void main(String[] args) throws IOException{

        Scanner keyboard = new Scanner (System.in);

        System.out.println("enter FILE name");
        String FileName = keyboard.nextLine();

        FileWriter fwriter = new FileWriter(FileName);
        PrintWriter StudentFile = new PrintWriter(fwriter);

        String name = "";
        int age = 0;
        double gpa = 0.0;
        String answer = "";

        do {
                System.out.println("Enter name.");
                name = keyboard.nextLine();

                System.out.println("Enter age.");
                age = keyboard.nextInt();

                keyboard.nextLine();

                System.out.println("Enter GPA.");
                gpa = keyboard.nextDouble();

                StudentFile.println (name);
                StudentFile.println (age);
                StudentFile.println (gpa);

                System.out.println("Do you wish to enter a new record? "
                            + "Type 'y' or 'n'.");
                answer = keyboard.nextLine();

        } 
        while (answer.equalsIgnoreCase("y"));

        StudentFile.close();
        System.exit(0);
    }
}

但問題是添加新記錄的問題並沒有向用戶詢問。 所以我想知道我做錯了什么以及如何解決它。

這是為您提供的快速解決方案。 請檢查以下代碼。

您需要使用 next() 代替 nextLine()。

    public static void main(String arg[]) {
    Scanner keyboard = new Scanner (System.in);
    System.out.println("enter FILE name");
    String FileName = keyboard.nextLine();
    try{
        FileWriter fwriter = new FileWriter(FileName);
        PrintWriter StudentFile = new PrintWriter(fwriter);
        String name = "";
        int age = 0;
        double gpa = 0.0;
        String answer = "";
            do {
                System.out.println("Enter name.");
                name = keyboard.next();

                System.out.println("Enter age.");
                age = keyboard.nextInt();

                System.out.println("Enter GPA.");
                gpa = keyboard.nextDouble();

                StudentFile.println (name);
                StudentFile.println (age);
                StudentFile.println (gpa);

                System.out.println("Do you wish to enter a new record? Type 'y' or 'n'.");
                answer = keyboard.next();
            }
            while (answer.equalsIgnoreCase("y"));

            StudentFile.close();
            System.exit(0);
            }catch(IOException ex){
                ex.printStackTrace();
            }finally {
                keyboard.close();
            }
        }

希望這個解決方案有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM