これは、子音に入る5つのチャンスを与える単語推測者であると想定されています。入力した文字が単語に含まれているかどうか、子音であるかどうかを確認するループに問題があります。
public class julia1 {
public static void main(String[] args) {
System.out.print("enter text to guess: ");
String w = Keyboard.readString();
char c1; String temp= "";
String asterix = "";
boolean character = false, vowel = false, consonant =false, number= false;
for(int c = 0; c < w.length(); c++){
if(w.charAt(c)==(' ')) asterix = asterix + " ";
else asterix = asterix + "*";
}
System.out.println(asterix);
for (int trys = 0; trys <=5; trys++){
temp="";
System.out.print("enter a consonant: ");
c1 = Keyboard.readChar();
for (int i = 0; i < w.length(); i++)
{
if (w.charAt(i) >= 'a' &&w.charAt(i)<='z')
character = true;
if (w.charAt(i) >= 'A' && w.charAt(i)<='Z')
character = true;
if (character == true){
switch (w.charAt(i)){
case 'a': case 'A': case 'o': case 'O':
case 'e': case 'E':
case 'i': case 'I':
case 'u': case 'U': vowel = true; break;
default : consonant = true;
}
if (c1 >= '0' && c1 <='9')
number=true;
}
}
for(int c = 0; c < w.length(); c++){
if((w.charAt(c)==c1) && (consonant == true ))
temp = temp + c1;
else if (vowel==true) {
temp = temp + asterix.charAt(c);
System.out.println("this is a vowel not consonant");
}
else {
System.out.println("this is not a valid letter");
}
}
asterix = temp;
System.out.println(asterix) ;
}
}
}
これは、最初の文字を入力した後の出力です。
Player 1 enter text to guess: hello everyone
***** ********
Player 2 enter a consonant: h
this is a vowel not consonant
this is a vowel not consonant
this is a vowel not consonant
this is a vowel not consonant
this is a vowel not consonant
this is a vowel not consonant
this is a vowel not consonant
this is a vowel not consonant
this is a vowel not consonant
this is a vowel not consonant
this is a vowel not consonant
this is a vowel not consonant
h**** ********
Player 2 enter a consonant:
フレーズ内のすべての文字に対して繰り返されるため、これを実行していることを私は知っています。どうすればこの問題を解決できますか?