我正在尝试重新分发我的代码,该代码打印出一条依赖于我赋给变量的值的消息。我想重新定位“你的分数”+分数部分,但我不知道如何分数,因为分数取决于我指定的值,这取决于总分。见下文。
注意:从两个部分中取出“你的分数是”+分数“并将其放在最后部分是不行的,因为我希望它在另一部分之前也依赖于变量。我会解释我的意思。
输出格式必须为:
您的分数得分
基于分数的另一条消息
int score;
if (total >= 50) {
score = 100;
System.out.println("Your score is " + score);
System.out.println("Good job");
} else if (total >= 0) {
score = 0;
System.out.println("Your score is " + score);
System.out.println("Play again?");
}
答案 0 :(得分:1)
将相似部分包装在函数中:
int score;
if (total >= 50) {
score = 100;
printMessage(score);
} else if (total >= 0) {
score = 0;
printMessage(score);
}
然后使用它:
int score;
if (total >= 50) {
score = 100
} else if (total >= 0) {
score = 0;
}
printMessage(score);
或者,更好的是:
library(tidyverse)
library(stringr)
df <- tribble(
~number, ~clientID, ~node1,
1 , 23969, '1 Community Services',
2 , 39199, '1 Youth Justice',
3 , 23595, '1 Mental Health',
4 , 15867, '1 Community Services',
5 , 18295, '3 Housing',
6 , 18295, '2 Housing',
7 , 18295, '1 Community Services',
8 , 18295, '4 Housing',
9 , 15253, '1 Housing',
10, 27839, '1 Community Services')
df2 <- mutate(df, step=as.numeric(str_sub(node1, end=1))) %>%
spread(step, node1, sep='_') %>%
group_by(clientID) %>%
summarise(step1 = sort(unique(step_1))[1],
step2 = sort(unique(step_2))[1],
step3 = sort(unique(step_3))[1],
step4 = sort(unique(step_4))[1])
df3 <- bind_rows(select(df2,1,source=2,target=3),
select(df2,1,source=3,target=4),
select(df2,1,source=4,target=5)) %>%
group_by(source, target) %>%
summarise(clients=n())
答案 1 :(得分:0)
修改强>
移出你的if(总计&gt; = 0)并在最后构建一个要打印的字符串:
int score;
String msg;
if(total >= 0) {
if (total >= 50) {
score = 100;
msg = "Good job";
} else {
score = 0;
msg = "Play again?";
}
System.out.printf("Your score is %d\n%s", score, msg);
}
答案 2 :(得分:0)
您可以在if/else
声明之后打印得分。
System.out.print("Your score is ");
if (total >= 50) {
score = 100;
System.out.print(score);
...
} else if (total >= 0) {
score = 0;
System.out.print(score);
...
}
编辑:我重新定位了"Your score is"
部分,但它没有做任何简化代码的事情。我很确定你的代码很好,但这是另一种方法。
答案 3 :(得分:0)
您可以调用两种不同的方法。一个人将返回给定总数的分数,另一个将返回消息。
private void myMethod() {
...
System.out.println("Your score is " + getScore(total));
System.out.println(getMessage(total));
...
}
private String getScore(int total) {
return total >= 50 ? 100 : total >= 0 ? 0 : -1;
}
private String getMessage(int total) {
return total >= 50 ? "Good job" : total >= 0 ? "Play again?" : "";
}