2017-01-17 78 views
0

我是java的新手,一直在使用NetBeans學習代碼。使用教程和獲得基本的交手後,我給自己定下的任務:Java:使用用戶輸入,確定一個整數是低於/高於還是等於另一個整數

「使用用戶輸入,確定一個整數等於另一個整數」

我想要的代碼比較用戶輸入的兩個整數並檢查它們是否相等。如果它們不相等,應該說它們不相等但如果整數相等,則代碼應該說他們是平等的

當我按運行這一切似乎罰款的代碼並不顯示任何錯誤但輸出框出現了這個:

java.util.Scanner [delimiters = \ p {javaWhitespace} +] [position = 2] [match valid = true] [need input = false] [source closed = false] [skip = false] [group separator = \,] [decimal separator =。] [positive prefix =] [negative prefix = \ Q- \ E] [positive suffix =] [negative suffix =] [NaN string = \ Q \ E] [infinity string = \Q∞\ E]不等於java.util.Scanner [delimiters = \ p {javaWhitespace} +] [position = 2] [ma tch valid = true] [need input = false] [source closed = false] [skipped = false] [group separator = \,] [decimal separator =。] [positive prefix =] [negative prefix = \ Q- \ E] [正後綴=] [負後綴=] [NaN的字符串= \ Q \ E] [無窮大字符串= \Q∞\ E]

這是我的當前代碼:

package mark_userinputtask; 

import java.util.Scanner; 
public class Mark_UserInputTask { 

    public static void main(String[] args) { 
     Scanner var1 = new Scanner(System.in); 
     Scanner var2 = new Scanner(System.in);  

     System.out.println(var1.nextLine()); 
     System.out.println(var2.nextLine()); 

     if (var1 == var2){ 
      System.out.println(var1 + " is equal to " + var2); 
     } else { 
      System.out.println(var1 + "is not equal to" + var2); 
     } 

我只想知道我做錯了什麼,以及如何讓它工作。

+0

你是比較掃描儀對象,而不是用戶輸入。嘗試將'nextLine()'的結果保存在字符串中並使用'equals()'方法進行比較 – fafl

+0

您可以將代碼的一部分添加爲代碼,以使其更具可讀性? –

回答

0

這裏是固定的代碼與行註釋說明:

import java.util.Scanner; 

class Mark_UserInputTask { 
    public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); //Declare the one scanner for the whole program 

    System.out.print("Please enter your first integer: "); //Prompt the user for input 
    int var1 = scanner.nextInt(); //Store the users input if it is an integer in a variable 
    System.out.print("Please enter your second integer: "); 
    int var2 = scanner.nextInt(); 

    if (var1 == var2) { //test if both variables are equal 
     System.out.println(var1 + " is equal to " + var2); 
    } else { 
     System.out.println(var1 + " is not equal " + var2); 
    } 
    } 
} 

試試吧here!

+0

你的生命!歡呼的幫助隊友:)起初它表示沒有課,但由於某種原因Netbeans沒有把「靜態無效」的一部分,我把它放在代碼完美后工作 –

+0

改變'Main'爲你的名字java文件即'Mark_UserInputTask' :) – shash678

+1

頂級幫助夥計! :)如果我可以爲你的5星評論先生:) –

0

您正在比較對象引用,而不是值。 嘗試使用equals方法。

String s1 = var1.nextLine(); 
String s2 = var2.nextLine(); 
if (s1.equals(s2)) { // true 
    . 
    . 
    . 

} else { // false 
    . 
    . 
    . 
} 
0

你正在做整個事情是錯誤的,你假設由用戶兩個輸入比較,但你所比較是二Scanner類實例。

,可以儲存用戶輸入一些int變量,然後比較喜歡這個,

public static void main(String[] args) { 

    Scanner var1 = new Scanner(System.in); 

    int a = var1.nextInt(); 
    int b = var1.nextInt()); 

if (a == b){ 
     System.out.println(a + " is equal to " + b); 

} else { 
    System.out.println(a + "is not equal to" + b); 
} 

你也不必使用單獨的Scanner類實例爲每個用戶輸入。

+1

歡呼的代碼,感謝您的幫助:)我曾嘗試shash678的代碼,這是相當類似的思想,但有一些變化。 (我將所有功勞都歸功於他)我可能會嘗試你的代碼,只是爲了額外的措施:)另外,因爲我是新手,所以你對比較兩個掃描器類實例的陳述會幫助我,因爲我只是看到:)如果我可以留下評論你的意見5 *'s :) –

0

好給自己的實踐任務!
兩件事:
1)你只需要一個掃描儀。
2)你將不斷引用用戶輸入來比較數字(至少它會是一個乾淨的方式) - 使用一些int變量!

像這樣:

Scanner scanner = new Scanner(System.in); 

int var1 = scanner.nextInt(); 
int var2 = scanner.nextInt(); 

scanner.close(); 
if (var1 == var2) { 
    System.out.println(var1 + " is equal to " + var2); 
} else { 
    System.out.println(var1 + " is not equal to " + var2); 
} 

而且3)請閱讀如何格式化您的問題:)

+0

在迴應1)謝謝你的信息,我是新的缺乏知識; P 3):P是啊我不是很清楚格式我有多次改變措辭,我發表時仍然不是100%:P –

相關問題