如何让循环停止在java中重复

时间:2018-03-28 03:13:35

标签: java eclipse

我是Java的初学者,我必须编写一个程序,允许用户输入单词,然后程序向后返回单词,直到用户写下" stop"。每次用户输入一个单词时,java会向后输出它以及输出的前一个单词,我不希望这样。 例如,如果我输入输入罐 它输出,停止 如果我打印猫 它输出potstac 我怎样才能让java向后输出单词而不将它添加到前面的单词中 例如,我想在花盆里输入 它应该输出,停止 我想打印猫 它应该输出,tac

import java.util.*;
public class javapdf2413 {
    public static void main (String [] args) {
        Scanner in = new Scanner (System.in);

        String wordEntered = "";
        String backWords = "";

        do {
            System.out.println("Enter in a word");
            wordEntered = in.next();
            for (int i = wordEntered.length()-1; i>=0; i--) {
                backWords = backWords + wordEntered.charAt(i);
            }
            System.out.println(backWords);

        }while(!wordEntered.equals("stop"));
    }

}

4 个答案:

答案 0 :(得分:1)

您需要在backWords循环开头将do设置回空字符串。如果你不这样做,它只会连接到前一个字符串的末尾 - 这就是你所说的正在发生的事情。在循环体的开头将其设置回""将基本上"重置"它用于下一个词。

像这样:

do {
    backWords = "";
    System.out.println("Enter in a word");
    wordEntered = in.next();
    for (int i = wordEntered.length()-1; i>=0; i--) {
        backWords = backWords + wordEntered.charAt(i);
    }
    System.out.println(backWords);

}while(!wordEntered.equals("stop"));

答案 1 :(得分:0)

尝试使用while循环

执行此操作
import java.util.Scanner;

public class TestRun {

    public static void main(String args[]) {

        Scanner in = new Scanner(System.in);

        String wordEntered = "";
        String backWords = "";

        while (true) {
            System.out.println("Enter in a word");
            wordEntered = in.next();

            if (wordEntered.equals("stop")) {
                break;
            } else {
                for (int i = wordEntered.length() - 1; i >= 0; i--) {
                    backWords = backWords + wordEntered.charAt(i);
                }
                System.out.println(backWords);
                backWords = "" ;
            }

        }

    }

}

答案 2 :(得分:0)

只需在do循环中初始化变量

String wordEntered;
String backWords;

            do {
              wordEntered = "";
              backWords = "";
                System.out.println("Enter in a word");
                wordEntered = in.next();
                for (int i = wordEntered.length()-1; i>=0; i--) {
                    backWords = backWords + wordEntered.charAt(i);
                }
                System.out.println(backWords);

            }while(!wordEntered.equals("stop"));

答案 3 :(得分:0)

请注意 - 字符串是不可变对象。使用正确的用例和方法。尝试尽可能多地使用StringBuilder作为非并发代码。