所以,我一直在编写这个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();
语句我真的很感激。
答案 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”的情况,而是其他内容。