我尝试打印一条消息,如果数组中的条件为真,则每10个值。
示例:用户可以记录用户想要输入的10行数。
ex:4。
然后,用户可以在数组中键入20个值。
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 等......
现在我需要在每10个值下,验证:是否满足以下某些条件:
if 2 == "mack".
if 3 == "rack".
if 3 && 2 == "both".
if aren't nay of the values = "none".
例如:
用户日志:
1 2 4 5 6 7 8 9 0 5
1 2 3 5 6 7 8 9 0 9
1 2 3 4 5 6 7 8 9 0
1 2 0 0 5 6 7 8 9 0
控制台显示:
1 2 4 5 6 7 8 9 0 5
mack
1 2 3 5 6 7 8 9 0 9
rack
1 2 3 4 5 6 7 8 9 0
both
1 2 0 0 5 6 7 8 9 0
none
我怎样才能使这个工作>?
这就是我现在所拥有的:
public class Main {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int total = num * 10;
int[] val = new int[total];
for(int i = 0; i < val.length; i++)
{
val[i] = sc.nextInt();
}
int zack = 17;
int mack = 18;
int count = 0;
String m = null;
String r = null;
String ans;
for(int i = 0; i < val.length; i++)
{
System.out.print(val[i] + " ");
count++;
if(contains(val, 17))
{
ans = "zack";
}
else if(contains(val, 18))
{
ans = "mack";
}
else {
ans = "none";
}
if(count == 10)
{
System.out.println();
System.out.println(ans);
count = 0;
}
}
}
static boolean contains(int[] arr, int item) {
for (int n : arr) {
if (item == n) {
return true;
}
}
return false;
}
}
答案 0 :(得分:0)
这是你想要做的伪代码:
index = 0
twoSeen = false
threeSeen = false
for each item {
if (item == 2) {
twoSeen = true
}
if (item == 3) {
threeSeen = true
}
print(item)
index = index + 1
if (index == 10) {
printReport(twoSeen,threeSeen)
index = 0
twoSeen = false
threeSeen = false
}
}
您需要做的就是将其转换为Java,并编写printReport
方法(这应该是微不足道的。)
private void printReport(boolean seen2, boolean seen3) {
if(seen2 && !seen3) {
System.out.println("Mack");
} else if(...
......你可以填写剩下的部分。
有一种更智能的方法可以使用%
运算符检测每个第十个项目,但在您使用代码之前保留该项目。
注意我提供了伪代码和部分答案,因为这看起来像是一个家庭作业问题,所以你需要的是朝着正确的方向推进。