感谢帮助人员。看着阵列。想想我拥有它,但我很难将它打印出来。有任何想法吗?它打印出单词test,但仅在几个空格之后(假设我的字母应该出现在那里)想出来:
for{
person <- db.longQueryToFindPerson(id)
calc <- db.anotherLongQueryCallCommission(person,baseSalary)
}yield Foo(person,calc)
答案 0 :(得分:0)
这是一个可能的解决方案,但下次做功课时却没有要求解决方案
import java.util.Scanner;
public class q1 {
public static void main(String[] args) {
char[] cipher = { 'D', 'W', 'E', 'L', 'H', 'O', 'R' };
char decoded[] = new char[10];
Scanner in = new Scanner(System.in);
for (int i = 0; i < 10; ++i) {
int num;
do {
num = in.nextInt();
} while (num < 1 || num > 7);
decoded[i] = cipher[num - 1];
}
System.out.println(decoded);
}
}
答案 1 :(得分:0)
您可能希望将迭代重写为for循环。
for(int i = 0; i < 10; ++i)
{
int input = in.nextInt();
//switch statement
}
您需要使用switch语句查找每个数字的字母,我们添加一个默认大小写来处理错误的数字。 此开关进入for循环。
switch(input)
{
case 1:
//store letter to array
break;
...
default:
--i;
System.out.println("Incorrect number, please enter a new number");
}
要存储每个匹配的字母,我们创建一个数组,我们已经知道它需要10个长度。 这一行在for循环之前:
char[] decodedCharacters = new char[10]
将这一个放在每个switch语句中:
decodedCharacters[i] = "D"; //another letter for each case.
这是打印所有字符:
String decodedString = new String(decodedCharacters);
System.out.println(decodedString);
编辑: 请参阅@Guillaume的答案,为其他组合留出更多灵活性。 他的回答并没有处理不正确的数字。