[英]How do I make it so the user has continuous input but can stop this with the use of a symbol?
我目前有以下代碼:
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語句?
您需要使用某種循環,例如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))
輸入星號,則測試if ("*".equals(text))
是否會中斷循環(使用break
關鍵字)。
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
作用。
您還可以在text
上調用trim()
,這樣,如果用戶使用一些空白字符輸入星號,循環也將停止。
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語句放在循環的末尾一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.