它应该是一个单词猜测游戏,在猜测它仍然不完整的单词之前有5次机会输入辅音但我必须知道该程序的这部分是否运行良好。我认为给我带来麻烦的变量是辅音,元音,数字这是我的代码:ps im对java非常新
public class julia1 {
public static void main(String[] args) {
System.out.print("enter text to guess: ");
String w = Keyboard.readString();
String asterix = "";
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++){
String temp="";
System.out.print("enter a consonant: ");
char c1 = Keyboard.readChar();
for (int i = 0; i < w.length(); i++)
{
boolean character = false, vowel = false, consonant =false, number= false;
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;
if (c1 >= '0' && c1 <='9')
number=true;
default : consonant = 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
temp = temp + asterix.charAt(c)&& number==true;
System.out.println("this is not a valid letter");}
asterix = temp;
System.out.println(asterix) ;
}
}
}
答案 0 :(得分:6)
您已在boolean character = false, vowel = false, consonant = false, number = false;
循环内声明了变量for
,并尝试在此循环之外,在其他for
循环内使用它们。这是编译错误的原因。
答案 1 :(得分:4)
这些变量:
boolean character = false, vowel = false, consonant = false, number = false;
在for循环中声明,这意味着它们的范围仅限于for循环。当您尝试在下一个for循环中重用它们时,它们不再存在。
您希望能够知道在上一个循环结束时它们的最终值是什么,在这种情况下,您需要通过在第一个for循环之前声明来增加其范围。或者你没有,你可以简单地在第二个for循环中重新声明它们。
答案 2 :(得分:0)
一个问题是你在一个for循环中声明了consonant
,然后尝试在另一个循环中使用它。这是不允许的,因为consonant
的范围在您声明它的for循环结束时结束。
答案 3 :(得分:0)
1)
boolean character = false, vowel = false, consonant =false,
你结束了,但应该是;
2)在for循环中定义你的角色,元音,辅音,否则它将仅限于循环。
如果将它们定义为类变量,则无需初始化为false,其默认值为false。
public class julia1 {
boolean character, vowel , consonant ;
public static void main(String[] args) {
3)temp = temp + asterix.charAt(c)&& number==true;
行无效