我目前有以下代码:
import java.io.*;
import java.util.*;
public class Reverser
{
public void run() throws IOException
{
String text;
String reverseText = "";
Scanner input = new Scanner(System.in);
System.out.println("Please enter text");
text = input.nextLine();
int length = text.length();
for (int i=length-1; i >= 0; i--)
reverseText = reverseText + text.charAt(i);
System.out.println("Your characters in reverse are: "+reverseText);
}
}
我现在想要这样做,以便一旦用户键入某些内容,他们就可以在不必重新运行程序之后输入其他内容。然后我想要这样做,如果输入字符'*',它结束,你不能再输入任何东西。 for循环后是否需要if语句?
答案 0 :(得分:1)
您需要使用某种循环,例如一个while
循环并每次测试输入。
例如:
while (true) {
System.out.println("Please enter text");
text = input.nextLine();
if ("*".equals(text)) {
break;
}
// ...code to use 'text'...
}
while (true)
循环将永远运行,但如果输入了星号,则测试if ("*".equals(text))
将打破循环(使用break
关键字)。
答案 1 :(得分:0)
for循环后是否需要if语句?
不,我不这么认为。
以下是执行此操作的方法之一
String text = "";
String reverseText = "";
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("Please enter text");
text = input.nextLine();
if (text.equals("*")) {
break;
}
int length = text.length();
for (int i=length-1; i >= 0; i--)
reverseText = reverseText + text.charAt(i);
System.out.println("Your characters in reverse are: "+reverseText);
reverseText = "";
}
说明:while (true)
块内的代码基本上保持循环和循环,直到input.nextLine()
返回"*"
。这就是break
的作用。
你也可以在trim()
上调用text
,这样如果用户输入带有空格字符的星号,循环也会停止。
if (text.trim().equals("*"))
或者,您可以将上述条件放在while循环的括号中。
String text = "";
String reverseText = "";
Scanner input = new Scanner(System.in);
while (!text.trim().equals("*")) {
System.out.println("Please enter text");
text = input.nextLine();
int length = text.length();
for (int i=length-1; i >= 0; i--)
reverseText = reverseText + text.charAt(i);
System.out.println("Your characters in reverse are: "+reverseText);
reverseText = "";
}
但这与第一次的表现略有不同。如果您输入了一个方法,则第一个方法不会打印*的反转,因为if位于for循环之前。另一方面,第二种方法将打印*的反向,因为在while循环的每次迭代之后都会进行检查,就像if语句放在循环的末尾一样。