【问题标题】:How do I initialise this variable in Java?如何在 Java 中初始化这个变量?
【发布时间】:2015-09-30 10:27:13
【问题描述】:
package testing;

import java.util.Scanner;

public class Example1 {

    public static void main (String[] args){


    String input; 
    String userInput; 
    String Joshua; 

    Scanner keyboard = new Scanner(System.in);

        System.out.println("What is your name?");
        input = keyboard.nextLine();

        if (input != Joshua){
            System.out.println("You aren't Joshua. Leave.");
        }  
    }

}

//我收到“if”语句中的错误。我究竟做错了什么?我需要做什么来初始化“Joshua”?

【问题讨论】:

标签: java variables if-statement initialization statements


【解决方案1】:
String joshua = "Joshua"; 

您只是为变量命名,但没有分配任何值。

另外,使用equals(Object obj) 方法来比较字符串! == 运算符只检查两个变量是否共享内存中的相同位置,equals() 方法检查内容是否相等。

if(joshua.equals(input))
{
// just do it
}

【讨论】:

  • 我是编程新手,所以 equals(Object obj) 方法几乎是难以理解的。谢谢你的课。
【解决方案2】:

你应该这样做

if (input.equals("Joshua") {
    //Master stuff...
} else {
    //You are not Joshua!
}

好的,那么

1:您从未为字符串Joshua 定义值。

2:你甚至不需要一个变量。只需在if statement 中执行"Joshua"

编辑:好的,如果您真的想为此使用变量,请通过以下方式对其进行初始化:

String Joshua = "Joshua";

当涉及到字符串时,使用.equals().equalsIgnoreCase() 而不是===! 来比较字符串!

【讨论】:

  • 好的。谢谢你。现在我的代码甚至根本不承认我的 if 语句。编译器没有出错:
  • System.out.println("你叫什么名字?");输入 = 键盘.nextLine(); if (input == Joshua){ System.out.println("你好,主人。你今天感觉怎么样?"); if (input != Joshua){ System.out.println("你不是 Joshua。再试一次。");输入 = 键盘.nextLine();
  • 我更新了代码。检查它,如果你想使用它,不要忘记像我展示的那样初始化变量。
【解决方案3】:

在 java 中的实例变量(在类中定义)获取它们的默认值。

您已初始化为局部变量(在方法中定义)。因为它们没有任何默认值。

  1. 可以使用String Joshua = null;String Joshua = "some value here";初始化Joshua变量,然后使用。

  2. 您可以将变量设为实例(在类中定义Joshua)并使其static 直接在您的static 方法main 中使用。

还有一点,您的Joshua 变量没有遵循Java 命名约定。应该是joshua

希望对您有所帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-02
    • 2014-04-15
    • 2013-06-27
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    相关资源
    最近更新 更多