Я не уверен, что код, который вы нам показали, скомпилируется. Есть несколько вещей, которые нужно изменить;
1) Вы устанавливаете String для int. Вы хотите изменить это на
int point = 0
2) Вы ничего не устанавливаете в операторе switch
Изменить case 'a': = "1":
на case 'a': point = 1;
3) Вы никогда не установите уникальное значение в операторе switch, потому что вы не используете break
Закажите эту страницу для хорошего урока: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
По сути, без каких-либо операторов break ваш код будет проходить через операторы, а точка будет просто назначена вашему последнему случаю.
Вы хотите иметь что-то вроде
switch(char) {
case 'a': point = 1;
break;
case 'e': point = 1;
break;
// etc.
default: point = 1; // maybe throw an error or add some logging for the default case
break;
}
return point;
Я предполагаю, что у вас действительно есть этот оператор switch в его собственном методе, а не в main, как вы показали нам выше, иначе оператор return вам не поможет.
Вы также можете сократить это так, чтобы каждый случай просто возвращал значение (опять же, если это в его собственном методе), т.е.
switch(char) {
case 'a': return 1;
case 'b': return 1;
// etc.
}
редактирование:
Лучший способ получить значение точки всего слова с помощью оператора switch:
char[] chars = word.toCharArray();
int point=0;
for (char c: chars) {
switch(c) {
case 'a':
point += 1;
break;
// etc.
}
}
System.out.println("Total point value of word '" + word + "' was " + point);