我要制作一个输入用户输入的单词游戏。如果用户字符串包含某些字母,则将分配一定的分数。最后,我要报告这些人的绳子是什么,以及他们的得分是多少。例如,给定输入:"你好",人分数应为" 8"。(H = 4分,E = 1分,L = 1点,1 = 1次,0 = 1分(。您将能够在下面的代码中看到所有分数规则。我在Jgrasp上测试了该算法,它只给了我上一个字母的分数,因为我增加了分数变量,所以我感到困惑。因此,当我输入" Hello"时,它给我得分为" 1"而不是" 8"。这是我的代码:
import java.util.Scanner;
public class test{
public static void main(String[] args){
System.out.println("Enter a string");
Scanner scan= new Scanner(System.in);
String curLine= scan.nextLine();
int score=0;
int[] value= {1,2,3,4,5,8,10};
for(int k= 0; k < curLine.length(); k++){
char c= curLine.charAt(k);
if(c == 'b'||c== 'c'|| c=='m'||c=='p'){
score= value[2];
}
else if(c=='d'||c=='g'){
score= value[1];
}
else if(c=='f'||c=='h'||c=='v'||c=='w'||c=='y'){
score= value[3];
}
else if(c=='j'||c=='x'){
score=value[5];
}
else if(c=='k'){
score=value[4];
}
else if(c=='q'||c=='z'){
score=value[6];
}
else{
score=value[0];
}
}
System.out.println("Your string was: " + curLine + "Your score is: " + score++);
}
}
您始终(重新(设置每个分支中的score
的值:
score=value[index];
这意味着您的分数将始终将值分配给输入字符串的最后一个字符(在您的情况下," O" ->" 1"(。
您需要总结值:
score+=value[index];
您每次都将值分配给score
变量。您需要使用现有的score
添加值。喜欢以下
score+=value[index];