簡體   English   中英

程序起作用,然后終止

[英]Program works and then terminates

我正在嘗試編寫一個用於字符串的加密/解密的程序,我需要為用戶創建一個菜單,以便他可以選擇要對輸入的字符串執行的操作。 如果用戶輸入1,則可以加密字符串,如果用戶選擇2,則可以解密字符串。 但是,當他輸入1時,da程序僅在控制台中終止,並顯示終止菜單Java應用程序C:\\ Program Files \\ Java \\ jre7 \\ bin \\ javaw.exe消息

有人知道嗎?

import java.util.Scanner;

public class Menu {

public static void main(String[] args) {

    String strTarget;

    Scanner in = new Scanner(System.in);

    System.out
            .println("Dobredojdovte vo programata za enkripcija i dekripcija na stringovi --");
    System.out
            .println("Za da enkriptirate string, stisnete 1; Za da dekriptirate string, stisnete 2");
    int choice = in.nextInt();
    if (choice == 1) {
        System.out.println("Vnesete go stringot kojsto sakate da go enkriptirate -- Dozvoleni se samo golemi bukvi i cifri (mali bukvi ne se dozvoleni)");
        strTarget = in.nextLine();
        System.out.println(strTarget);
    }
    if (choice == 2) {
        System.out.println("Vnesete go stringot kojsto sakate da go dekriptirate --");
    }

}

}

代替:

strTarget = in.nextLine();

你要:

strTarget = in.next();

我不確定輸出的語句(不是我的語言),但這將返回輸入的下一個單詞。 如果您需要整條生產線,請保持原樣,而不是:

int choice = in.nextInt();

你要:

int choice = in.nextInt();
in.nextLine();

in.nextInt()讀取數字而不是整行是毫無價值的,因此in.nextLine()讀取該行的其余部分。 如果您希望用戶輸入數字,並且想忽略其余的行,則需要在其后調用in.nextLine()。

當然它終止了,您並不是在向程序表明必須繼續要求輸入。 您需要為此在循環內編寫代碼!

暫無
暫無

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

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