Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无限循环不工作_Java_Infinite Loop - Fatal编程技术网

Java 无限循环不工作

Java 无限循环不工作,java,infinite-loop,Java,Infinite Loop,代码在第一次通过时起作用。但在那之后,输出就不起作用了。 它的主要目标是创建一个无限循环,要求用户输入一个短语,然后是一个字母。然后,输出短语中字母出现的次数。 还有--我如何通过输入一个单词来打破这个循环 Scanner in = new Scanner(System.in); for (;;) { System.out.println("Enter a word/phrase"); String sentence = in.nextLine(); int tim

代码在第一次通过时起作用。但在那之后,输出就不起作用了。 它的主要目标是创建一个无限循环,要求用户输入一个短语,然后是一个字母。然后,输出短语中字母出现的次数。 还有--我如何通过输入一个单词来打破这个循环

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.");
}
Scanner-in=新的扫描仪(System.in);
对于(;;){
System.out.println(“输入单词/短语”);
字符串语句=in.nextLine();
整数倍=0;
System.out.println(“输入字符”);
字符串字母=in.next();
for(int i=0;i<句子长度();i++){
char lc=字母.charAt(0);
char sc=句子charAt(i);
if(lc==sc){
时代++;
}
}
System.out.print(“出现字符:“+times+”times.”);
}

如果需要无限循环,只需执行以下操作:

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.");
}

拆下for回路并用一段时间将其更换

while循环应该检查短语,当满足短语时,它将自动退出

大概是

while (!phraseToCheckFor){
// your code
}

这听起来像是家庭作业,所以我不会发布所有代码,但这应该足以让您开始。

为了让程序正确运行,您需要使用最后一个新行字符。您可以通过向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
        }
    }
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
对于(;;){
System.out.println(“输入单词/短语”);
字符串语句=in.nextLine();
if(句子.trim()等于(“退出”)){
打破
}
整数倍=0;
System.out.println(“输入字符”);
字符串字母=in.next();
for(int i=0;i<句子长度();i++){
char lc=字母.charAt(0);
char sc=句子charAt(i);
if(lc==sc){
时代++;
}
}
System.out.println(“出现字符:“+times+”times”);
in.nextLine();//使用最后一行新行
}
}

我不明白。什么时候你想让循环中断?而(true){if(success)break;}当用户输入“quit”作为短语/单词时,循环就会中断……读心术一直是我最差的技能之一。如果你想使用
nextLine
next
那么你可能应该阅读“不要给OP ready”代码。让他通过展示自己的错误而不是纠正错误来提高自己的编程能力。