Я работаю над оператором Switch в цикле. Я хочу добавить имена и назначить письма этим именам, а затем распечатать общее значение в соответствии с буквами. Проблема в том, что он не будет читать назначенные значения для букв, как вы можете видеть в моем коде ниже. Например, для Майка я назначил A, а A имеет значение 10. И для Joe я назначил B, а B имеет значение 7. Поэтому мне нужно общее значение для A + B, умноженное на фиксированное значение 3, которое это 51. Я определенно делаю что-то неправильно и хотел бы знать, можно ли это сделать без использования объектов и других методов.Включить петлю для печати значений
import java.util.Scanner;
public class TotalScore {
public static void main(String[] args) {
double lettervalue = 0,fixedvalue=3,totalvalue;
int count,repeatcount;
String valuename = "";
String letter="";
Scanner input = new Scanner(System.in);
System.out.print("How many values do you want to process? ");
count=input.nextInt();
input.nextLine();
for(repeatcount=0;repeatcount<count;++repeatcount){
System.out.print("Enter name for value " +(repeatcount+1)+" ");
valuename = valuename+input.nextLine()+"\n";
System.out.print("Enter letter A,B,C or D for named value ");
letter = letter+input.nextLine()+"\n";
switch(letter){
case "A":case"a": lettervalue=10.0;
break;
case "B":case"b": lettervalue=7.0;
break;
case "C":case"c": lettervalue=5.0;
break;
case "D":case"d": lettervalue=2.0;
break;
default: lettervalue=0;
}
}
totalvalue=lettervalue*fixedvalue;
System.out.println("The value names are\n "+valuename);
System.out.println("The letter values you entered are\n "+letter);
System.out.println("The total value is "+totalvalue);
}
}
Output:
How many values do you want to process? 2
Enter name for value 1 Mike
Enter letter A,B,C or D for named value A
Enter name for value 2 Joe
Enter letter A,B,C or D for named value B
The value names are
Mike
Joe
The letter values you entered are
A
B
The total value is 0.0
'letter = letter + input.nextLine() +" \ n "' приведет к удару вашего случая по умолчанию каждый раз в вашем операторе switch. Почему вы добавляете символ новой строки? И затем на второй итерации «письмо» станет конкатенацией ваших двух входов и так далее. – mstbaum
просто для того, чтобы отделить от вопроса, чтобы поставить эти значения под друг друга. – Ivanko
'letter' должно содержать только ваше входное значение, а затем вы можете добавить это в String, если вам нужно – mstbaum