そこで、Java についてこれまでに学んだことをテストするためのちょっとした挑戦として、Web コミック (好奇心旺盛な人のために Heartstuck の Sol Captor) のキャラクターの書き癖をユーザーの入力に適用するプログラムを作成することにしました。 switch ステートメント。これまでのところ、プログラムは正常に動作し、Quirk は正常に適用されていますが、プログラムを再度実行するかどうかをユーザーに尋ねようとしたときに、はいと言ったときに、実行されなかった場合を除いて、プログラムは再び実行されました。一時停止して、ユーザーが別のステートメントを入力して、癖を適用できるようにします。char restart を除くすべての宣言を while ループ内に配置し、「sol.Next();」という行を追加しようとしました。「System.out.println("Normal");.」の後 これらはどちらも機能せず、これを修正する方法に関する情報がどこにも見つかりません。
import java.io.IOException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class SolQuirk {
public static void main(String[] args) {
char restart = 'y';
Scanner sol = new Scanner(System.in).useDelimiter("");
String input = "";
while(restart == 'y' | restart == 'n'){
System.out.println("Normal:");
while(!sol.hasNext("\n")){
char ch = sol.next().charAt(0);
switch(ch){
case 's': case 'S':
input += '2';
break;
case ' ':
input += ch;
ch = sol.next().charAt(0);
if(ch == 't' || ch == 'T'){
ch = sol.next().charAt(0);
if(ch == 'o' || ch == 'O'){
ch = sol.next().charAt(0);
if(ch == 'o' || ch == 'O'){
ch = sol.next().charAt(0);
if(ch == ' ' || ch == '.'){
input += "two";
input += ch;
break;
}
else{
input += "too";
input += ch;
break;
}
}
else if(ch == ' ' || ch == '.'){
input += "two";
input += ch;
break;
}
else{
input += "to";
input += ch;
break;
}
}
else{
input += "t";
input += ch;
break;
}
}
default:
input += ch;
break;
}
}
String solQuirk = input.toLowerCase();
System.out.println("Sol:");
System.out.println(solQuirk);
System.out.println("Would you like to go again? y/n");
try {
restart = (char) System.in.read();
} catch (IOException ex) {
Logger.getLogger(SolQuirk.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
前もって感謝します。