2009-12-15 174 views
1

我正在做一個程序,它有兩個不同的問題,歐姆和安培是確切的。雖然循環/ java

我知道如何做這個工作,但問題是最後還會出現另一個問題,問「你想做一個新的計算嗎?」這個問題應該像我按下「Y」那樣工作,程序應該從頭開始繼續,如果按「N」,程序應該退出。

我希望任何人有一些想法,可以幫助我完成這一點。程序必須使用JOptionpane.dialog /消息格式。

// delajz

這就是我得到的atm。

//Declaring Variables 

Ampere = Integer.parseInt(FragaAm); 
Ohm = Integer.parseInt(FragaOhm); 

//koden 
do 
{ 
    FragaAm =JOptionPane.showInputDialog("Hur många Ampere? "); 
    FragaOhm = JOptionPane.showInputDialog("hur hög resistans? "); 
    svar = Ohm*Ampere; //calculate 
    slutsvar = svar + "Volt"; //answer 
    JOptionPane.showMessageDialog(null,slutsvar);  

    borjaom =JOptionPane.showInputDialog("Igen? J eller N "); // the question which ask for new calc 
} while (borjaom == "j" ||borjaom == "J"); 
+1

如果您可以添加一些代碼,那可能會幫助我們確定您的需求。只需確保在發佈時將縮進代碼行縮進4個空格,以便在SO上正確格式化。 – 2009-12-15 15:03:36

+0

你有沒有胚胎的代碼,或者你會不會有人爲你寫代碼? – Tomas 2009-12-15 15:03:48

+0

這是功課嗎?你確定你正在使用JavaScript,而不是Java Swing嗎? – Pops 2009-12-15 15:05:12

回答

3

您可以先看太陽文章How to Make Dialogs
它提到配置就像你正在尋找讓一個JOptionPane

alt text http://java.sun.com/docs/books/tutorial/figures/uiswing/components/JOptionPaneMetal.png

final JOptionPane optionPane = new JOptionPane(
    "The only way to close this dialog is by\n" 
    + "pressing one of the following buttons.\n" 
    + "Do you understand?", 
    JOptionPane.QUESTION_MESSAGE, 
    JOptionPane.YES_NO_OPTION); 
+0

問題要求按「Y」或「N」而不是從一開始就是我的問題的標籤是或否。 – Brandon 2009-12-15 16:21:45

+0

yea brandon。但它只是一種解釋方式,我需要一些東西來調用程序重啓或退出。這工作同樣好 – Fredrik 2009-12-15 16:37:02

2

試試這個:

borjaom =JOptionPane.showInputDialog(null, "Igen? J eller N "); 

此外,JOptionPane只能用於輸入字符串 。因此,您設置爲接收來自JOptionPane的輸入的所有變量應聲明爲字符串。 安培歐姆應被聲明爲整數,而FragaAmFragaOhmborjaom應被聲明爲字符串。

+1

好評。 +1 – VonC 2009-12-15 16:26:25

0

作爲替代什麼VonC說,JOptionPane.dialog /消息格式:

//Declaring Variables 
int borjaom = JOptionPane.NO_OPTION; 

// omitted other code, but it should still be here 

    // Note that borjaom is an int now 
    borjaom = JOptionPane.showConfirmDialog(null, "Igen?", "Title goes here", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); // the question which ask for new calc 

    } while (borjaom == JOptionPane.YES_OPTION); 

borjaom將被設置爲的JOptionPane.NO_OPTIONJOptionPane.YES_OPTION之一。

哦,如果你想有一個標題少對話框(或默認標題),改變"Title goes here"null

+0

正如預期的那樣工作,是的,我改變了標題;) – Fredrik 2009-12-15 16:36:07

2

你而條件:

} while (borjaom == "j" ||borjaom == "J"); 

假定字符串可以對象的基礎上進行比較,但在字符串被實現的情況下這是真的,最好切換到表示是/否結果的枚舉整數,或者使用來自String的等方法:

} while ("J".equalsIgnorecase(borjaom)); 

(使用這種格式,而不是borjaom.equalsIgnorecase("J")有其處理的情況borjoam == null正確的優勢。)

0

這部分將無法正常工作:

Ampere = Integer.parseInt(FragaAm); 
    Ohm = Integer.parseInt(FragaOhm); 

    do 
    { 
     FragaAm =JOptionPane.showInputDialog("Hur många Ampere? "); 
     FragaOhm = JOptionPane.showInputDialog("hur hög resistans? "); 

閱讀之前,您正在轉換FragaAm爲整它。
必須先閱讀,然後轉換:

do 
    { 
     FragaAm =JOptionPane.showInputDialog("Hur många Ampere? "); 
     Ampere = Integer.parseInt(FragaAm); 
     FragaOhm = JOptionPane.showInputDialog("hur hög resistans? "); 
     Ohm = Integer.parseInt(FragaOhm); 

,並請看看在Code Conventions for the Java Programming Language
你的情況:變量開始與小寫(慣例,但整個世界各地使用)