代码第一次运行。但在那之后,输出不起作用。 这样做的主要目的是创建一个无限循环,向用户询问一个短语,然后是一个字母。然后,输出短语中字母的出现次数。 另外 - - 我怎么会通过输入一个单词来打破这个循环呢?
Scanner in = new Scanner(System.in);
for (;;) {
System.out.println("Enter a word/phrase");
String sentence = in.nextLine();
int times = 0;
System.out.println("Enter a character.");
String letter = in.next();
for (int i = 0; i < sentence.length(); i++) {
char lc = letter.charAt(0);
char sc = sentence.charAt(i);
if (lc == sc) {
times++;
}
}
System.out.print("The character appeared:" + times + " times.");
}
答案 0 :(得分:2)
删除for循环并用一段时间替换它。
while循环应该检查一个短语,当短语被满足时它会自动退出。
类似
while (!phraseToCheckFor){
// your code
}
这听起来像是作业,所以我不会发布所有代码,但这应该足以让你开始。
答案 1 :(得分:0)
如果您需要无限循环,请执行以下操作:
for(;;) { //or while(true) {
//insert code here
}
您可以使用break
语句来中断循环,例如:
for(;;) {
String s = in.nextLine();
if(s.isEmpty()) {
break; //loop terminates here
}
System.out.println(s + " isn't empty.");
}
答案 2 :(得分:0)
为了让程序正确运行,您需要使用最后一个换行符。您可以通过添加对 nextLine 的调用来完成此操作。 工作实例,
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
for (;;) {
System.out.println("Enter a word/phrase");
String sentence = in.nextLine();
if (sentence.trim().equals("quit")) {
break;
}
int times = 0;
System.out.println("Enter a character.");
String letter = in.next();
for (int i = 0; i < sentence.length(); i++) {
char lc = letter.charAt(0);
char sc = sentence.charAt(i);
if (lc == sc) {
times++;
}
}
System.out.println("The character appeared:" + times + " times.");
in.nextLine();//consume the last new line
}
}