例如:我想制作一个简单的Scrabble游戏。我输入一个单词,我会分开每个字符并给它一个值。我想要计算这个值,但它只是不会起作用。在结果中,它显示每个角色都得到了它们的价值,但不会计算在内。
这是我的代码:
`public class StringBodyBuilder {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
char character;
String word;
int wordValue =0;
System.out.print("Give a word: ");
word = scanner.nextLine();
for (int i = 0; i <word.length() ; i++) {
character = word.toLowerCase().charAt(i);
wordValue =+ character;
switch (character) {
case 'a' :
case 'e' :
case 'i' :
case 'n' :
case 'o' : System.out.println(1);
break;
case 'd' :
case 'r' :
case 's' :
case 't' : System.out.println(2);
break;
case 'b' :
case 'g' :
case 'k' :
case 'l' :
case 'm' :
case 'p' : System.out.println(3);
break;
case 'f' :
case 'h' :
case 'j' :
case 'u' :
case 'v' : System.out.println(4);
break;
case 'c' :
case 'w' : System.out.println(5);
break;
case 'x' :
case 'y' : System.out.println(8);
break;
case 'q' : System.out.println(10);
break;
case ' ' : System.out.println(0);
break;
}
System.out.println(wordValue);
}
}
结果: 说一句话:牛 五 99 1 111 五 119
答案 0 :(得分:0)
您只打印字母的值,但实际上并未使用它们。
例如,您可以保存以下值:
int value = 0;
switch (character) {
case 'a' :
case 'e' :
case 'i' :
case 'n' :
case 'o' :
value = 1;
break;
case 'd' :
case 'r' :
case 's' :
case 't' :
value = 2;
break;
...
并在切换后:
wordValue += value; // += and not =+
System.out.println(wordValue);