0

“if”语句只允许在其中输入数字。有没有办法让它读信?我才上 Java 的第五课(我在一所大学学习,老师很慢,但我想学得快)

例如。

import java.util.Scanner;
public class Java {
    public static void main (String [] args) {

        Scanner scan = new Scanner(System.in);
        int answer1;
        System.out.println("Do you like Java?");
        answer1 = scan.nextInt();
        if (answer1 == yes)
        System.out.println("Cool ~");
        else
        System.out.println("Ehh...");
    }
}

我想输入“是”而不是数字 5。因此,如果用户输入“是”,它将打印“正确”。

PS 我在搜索引擎中没有找到明确的答案。这不是一个重复的线程,因为我试图找到一个明确的答案。我需要一个详细的解释。我还是个初学者,使用那些“高科技的 java 词”对我没有帮助。

4

2 回答 2

2

您需要修改您的程序,以便您的扫描仪读取 aString而不是int. 你可以这样做:

import java.util.Scanner;
public class Java {
    public static void main (String [] args) {

        Scanner scan = new Scanner(System.in);
        String answer1;
        System.out.println("Do you like Java?");
        answer1 = scan.next();
        if (answer1.equals("yes"))
        System.out.println("Cool ~");
        else
        System.out.println("Ehh...");
    }
}

我用next()这个是因为我们只需要一个词(令牌),但请注意还有其他选项可以读取字符串。

另请注意,我已经更改了条件中的测试,因为它现在是String. 有关比较Strings的更多信息,请参阅此答案。

于 2013-04-28T13:32:48.207 回答
1

您需要修改您的程序,以便您的扫描仪读取 String 而不是 int。你可以这样做:

导入 java.util.Scanner;公共类 Java { public static void main (String [] args) {

    Scanner scan = new Scanner(System.in);
    String answer1;
    System.out.println("Do you like Java?");
    answer1 = scan.next();
    if (answer1.equals("yes"))
    System.out.println("Cool ~");
    else
    System.out.println("Ehh...");
} }

我为此使用了 next() ,因为我们只需要一个单词(令牌),但请注意还有其他选项可以读取字符串。

另请注意,我已经更改了条件中的测试,因为它现在是一个字符串。有关比较字符串的更多信息,请参阅此答案。

好的,如果您希望程序同时读取单词和数字怎么办:这是我的程序(更深入,当您看到完整内容时),但这是我拥有的 5 个部分(看起来很像)之一程序...

public static void Gdr1() {
        try {
            System.out.print("[Code: Gdr1]  Grade 1: %");
            Scanner gdr1 = new Scanner(System.in);
            Z = gdr1.next();
            Z = Double.toString(Grd1);
            Grd1 = Double.parseDouble(Z);
            if ((Grd1<100)&&(Grd1>=5)) {
                Gdr2();
            } else if ((Grd1>=100)&&(Grd1<125)) {
                System.out.println("    System> Great Job "+Stu+"!");
                Gdr2();
            } else if (Grd1<5) {
                System.out.println("I'm sorry, the lowest grade I am allowed to compute is 5...");
                Gdr1();
            } else if (Z.equalsIgnoreCase("restart")) {
                restart01();
            } else {
                System.out.println("("+Z+") cannot be resolved in my system...");
                Gdr1();
            }
        } catch (Exception e) {}
    }

现在程序中一切正常,除了当最终用户的输入 ="restart"时,我知道程序中的一些代码看起来很复杂,但它确实有效(大部分),谁能帮我解决这个问题,它我在学校的作品集最迟截止日期为 2017 年 1 月 25 日 @ 晚上 11:59。

诸如Z(常量字符串)、""+Stu+""(变量输入)之类的东西[Code: Gdr1]是有目的的……

于 2017-01-06T13:02:50.943 回答