在表达时需要一些指导

时间:2013-05-25 04:32:58

标签: java while-loop

所以,我一直在编写这个hangman程序,并且在开始时,我希望用户必须输入“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表达式上,不知道该放什么。

我正在努力确保用户输入的内容等于单词“start”。还使用myScanner.next*Int*();语句使用正确的语句? (对不起,如果我使用错误的术语)

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

如果有人可以告诉我如何制作while循环表达式,请确保用户键入的内容等于单词“start”,并且我是否必须更改.nextInt();语句我真的很感激。

2 个答案:

答案 0 :(得分:3)

首先,正如您期望的String "start",此变量的类型必须是String,而不是int

int start;

应该是

String start;

关于另一个问题:

  

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

没有。 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)) {)。

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

答案 1 :(得分: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(),而应使用nextLine()

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

String的比较方法是equals(),您必须使用它来比较字符串start(包含用户输入的内容)与字符串文字{{1} }。

"start"代码块适用于用户未键入“start”的情况,而是其他内容。