-1

所以,我一直在编写这个刽子手程序,一开始,我希望用户必须键入“start”才能开始程序。所以,这就是我到目前为止所拥有的:

package hangman;

import java.util.Scanner;

public class Main {   
    public static void main(String[] args) {
        int start;
        System.out.print("Welcome to Hangman!");
        System.out.println("Type start to begin!");
        Scanner myScanner = new Scanner(System.in);
        start = myScanner.nextInt();
        while (

        }
    }
}

所以,如你所见,我被卡在了 while 表达式上,不知道该放什么。

我试图确保用户输入的内容等于“开始”这个词。使用该myScanner.next*Int*();语句也是正确的语句吗?(对不起,如果我使用了错误的术语)

或者我必须Int用其他东西代替,因为它是一个词?此外,在while循环中,我尝试将用户输入的内容与“开始”一词进行比较(start = "start"),但收到一条incompatible operand types int and String错误消息。
我认为我必须做的是为单词“start”创建一个字符串,然后以某种方式将其放入表达式中?

如果有人可以指导我如何制作while循环表达式,请确保用户输入的内容等于“开始”这个词,如果我必须更改.nextInt();语句,我将非常感激。

4

2 回答 2

3

首先,正如您所期望的那样String "start",这个变量的类型必须是String,而不是int

int start;

应该

String start;

关于另一个问题:

使用该myScanner.next*Int*();语句是正确的语句吗?

No.next()是这里要使用的 - 它会将键入的令牌作为String.

你把它next()放在一个while这样的循环中:

package hangman;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String start;
        System.out.print("Welcome to Hangman!");
        System.out.println("Type start to begin!");
        Scanner myScanner = new Scanner(System.in);
        start = myScanner.next();
        while (!"start".equals(start)) {
            System.out.println("You must type start to begin!");
            start = myScanner.next();
        }
        System.out.println("Thanks for typing start!");
    }
}

基本上,这将继续读取令牌(start = myScanner.next();),而键入的值不是"start"while (!"start".equals(start)) {)。

运行代码,希望一切都清楚。

于 2013-05-25T04:39:50.613 回答
1

这是您要查找的内容:

public static void main(String[] args) {
    String start;
    System.out.print("Welcome to Hangman!");
    System.out.println("Type start to begin!");
    Scanner myScanner = new Scanner(System.in);
    start = myScanner.nextLine();
    if (start.equals("start")) {
        System.out.println("User said 'start'");
    } else {
        System.out.println("This isn't 'start' :-(");
    }
}

int意思是“整数”,它是一个数字,你想要的是一个String. 因此,您不应该使用nextInt(), but nextLine()

while ()是一个循环,如果你只想测试一个表达式,你必须使用if ().

的 compare 方法Stringequals(),你必须用它来比较你的字符串start(其中包含用户键入的内容)和字符串字面量"start"

else用户没有键入“开始”,而是其他内容时,代码块就在这里。

于 2013-05-25T04:39:08.867 回答