Java:使用用户输入,确定一个整数是低于还是高于或等于另一个整数

时间:2017-01-17 20:53:31

标签: java

我是java的新手,并且一直在使用netbeans学习代码。在使用了教程并掌握了基础知识之后,我为自己设定了一个任务:

“使用用户输入,确定一个整数是否等于另一个整数”

我希望代码比较用户输入的两个整数,并检查它们是否相等。如果它们不相等,它应该说它们不相等但是如果整数相等,代码应该说它们是相等的

当我按下运行时,一切看起来都很好,因为代码没有显示任何错误,但输出框出现了这个:

java.util.Scanner [delimiters = \ p {javaWhitespace} +] [position = 2] [match valid = true] [need input = false] [source closed = false] [skipped = 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] [match valid = true] [need input = false] [source closed = false] [跳过] = false] [group separator = \,] [decimal separator =。] [positive prefix =] [negative prefix = \ Q- \ E] [positive suffix =] [negative suffix =] [NaN string = \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);
        }

我只想知道我做错了什么以及我该如何使它发挥作用。

4 个答案:

答案 0 :(得分:1)

以下是使用在线注释解释的代码:

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!

答案 1 :(得分:0)

您正在比较对象引用,而不是值。 尝试使用equals方法。

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

} else {  // false
   .
   .
   .
}

答案 2 :(得分:0)

你所做的一切都是错的,你假设用户比较两个输入,但你要比较的是两个<? if( isset( $_GET['list'] ) AND $_GET['list'] != '' ) { $listId = $_GET['list']; } $email = $_POST['widget-subscribe-form-email']; $fname = isset( $_POST['widget-subscribe-form-fname'] ) ? $_POST['widget-subscribe-form-fname'] : ''; $lname = isset( $_POST['widget-subscribe-form-lname'] ) ? $_POST['widget-subscribe-form-lname'] : ''; $fp = fopen("newsletter_subscriptions.txt","w+"); fputs($fp, "email : "); fputs($fp, $_POST['widget-subscribe-form-email']); fputs($fp, "\nPrénom : "); fputs($fp, $_POST['widget-subscribe-form-fname']); fputs($fp, "\nNom : "); fputs($fp, $_POST['widget-subscribe-form-lname']); fclose($fp); ?> 类实例。

您应该将用户输入存储在某个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); } 类实例。

答案 3 :(得分: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)请阅读如何格式化您的问题:)