我正试图制作一个简单的if条件。不幸的是,我有两次相同的条件(我想避免它)。
我正在此网站上建立一个流程:http://code2flow.com/#
代码如下所示:
Prerequisite for certification and exam;
if(test 1 >= 15 points)
{
certification 1;
exam 1;
if(test 2 >= 15 point)
{
certification 2;
exam 1 + 2;
}
}
else if(test 2 >= 15 point)
{
certification 2;
}
解释:一个人必须在课程中通过考试(有2门课程)。他必须获得至少15分才能获得该课程的认证。
如果该人在考试1中至少获得15分,他将获得课程1的证书,并被允许为课程1编写考试。
如果该人在测试2中至少获得15分,他将获得课程2的认证。
最后,只有在两次测试> = 15分的情况下,才允许此人编写考试2。
以下是目前状态的图片:http://code2flow.com/Dkf6Vo.png
答案 0 :(得分:2)
我不明白为什么你需要仔细检查。 你可以用它。
if (test 1 >= 15) {
certification 1;
exam 1;
}
if (test 2 >= 15) {
certification 2;
if (test 1>=15) {
exam 1 + 2;
}
}
当测试1 OK - >考试和认证确定。
当测试2 OK - >认证OK - >再次检查测试1是否也正常 - >如果可以,请提供考试 如果不行,那就不要继续了。
如果你想在变量上直接使用short和condition ..你可以尝试下面的
exam = test2 >= 15 && test1 >=15 ? 2 : (test1 >= 15 ? 1 : 0) ;
certification = test2 > = 15 ? 2 : (test1 >= 15 ? 1 : 0);
答案 1 :(得分:1)
在编写代码时,我们最关心的是管理复杂性和可读性。如果不应将其视为主要标准,则减少一两个。问题应该是,我们应该如何设计这两个逻辑。
混合这些认证逻辑和考试逻辑并不是良好设计的标志。
因此,分为两个不同的功能,以提高可读性并增加程序的灵活性。
int getCertificate(int point){
if(point >= 15)
return 1;
return 0;
}
int certificate = getCertificate(exam1) + getCertificate(exam2);
int getExams(int exam1, int exam2){
if(exam1 >= 15){
if(exam2 >=15)
return 2;
return 1;
}
return 0;
}
int exam = getExams(exam1, exam2);