繁体   English   中英

我如何使循环停止在Java中重复

[英]How do i make the loop stop repeating in java

我是Java的初学者,我必须编写一个程序以允许用户输入单词,然后该程序向后返回单词,直到用户编写“ stop”为止。 每次用户输入一个单词时,java会将其向后输出,再加上输出的前一个单词,我不希望这样。 例如,如果我将输入的pots放置在输出中,如果我打印cat则输出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"));
    }

}

您需要在do循环开始时将backWords设置回空字符串。 如果您不这样做,它将仅连接到上一个字符串的末尾-这就是您所说的情况。 在循环主体的开头将其设置回""实际上将为下一个单词“重置”它。

像这样:

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

尝试使用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 = "" ;
            }

        }

    }

}

只需在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"));

提防-字符串是不可变的对象。 将其与正确的用例和方法一起使用。 尽可能尝试将StringBuilder用于非并发代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM