2010-09-03 245 views
2

A =如果相关信息输入- 不要删除!;逻辑编程帮助

B =如果相关信息输入- 不要加!;

C =如果相关信息输入等于相关信息 - 不加;!

我们可以有这样的:

if B //it's the most common operation, so at the beginning. 
{ 
    //add 
} 
else 
{ 
//remove 
} 
elseif(c) 
{ 
//the same add 
} 

我相信这可以更好地思考。我可以帮你吗?

在此先感谢,

+0

什么是infos? – 2010-09-03 11:03:32

+0

只是一些东西。它可能是blabla。在这种情况下,我试图将数据库中的值与用户输入的值进行比较。所以信息将代表来自数据库的信息。 – MEM 2010-09-03 11:19:54

回答

2
if (infos != inputs) { 
    if (empty(inputs)) { 
     // remove 
    } else { 
     // add 
    } 
} 

记住,最外面的状况检查这两个值永远不会空(绝不相同,实际上)。例如,

A =如果相关信息投入空 - 不要删除!;

如果输入是空的相关信息可以是空的。因此,删除。

B =如果相关信息投入空 - 不要加!;
C = if infos!empty and inputs!等同于infos - 做加;

不同和输入不是空=>它不马瑟信息是否为空=>添加。

+0

我会研究它... – MEM 2010-09-03 12:01:32

+0

我相信这涵盖了所有的可能性。 如果他们是平等的,什么都不要做。 如果它们不同,并且输入为空 - 请移除。 如果它们不同,并且输入不为空 - 请添加。 – MEM 2010-09-03 14:24:15

0

您当然可以做到这一点。只需订购条件块:If... Else If... Else

+0

@aularon&Daniel - 哦!尼斯。所以我们确实有if,否则if ... else if ...而最后的else与FIRST if条件相反。精确? – MEM 2010-09-03 11:23:31

+1

@mem - 不,只有在没有任何其他块被执行时才会执行。 – 2010-09-03 12:08:11

+0

谢谢 - 所以别的,并不意味着相反,或相反。只是,有些不同。 ? – MEM 2010-09-03 13:14:31

8
if (B || C) 
{ 
    //add 
} 
else 
{ 
//remove 
} 
+0

这里唯一想到的是,C条件加上B条件可能会相当大。 :s所以,我最好将这些比较存储到一个变量中,并改用这些变量。你怎么看? – MEM 2010-09-03 11:21:54

+0

当两者都为空时,这也会被删除。 – Gumbo 2010-09-03 11:27:12

+0

@Gumbo:请澄清 - 无论是什么 - 信息或投入? – MEM 2010-09-03 11:31:33

2

ifelseif(只要你想尽可能多elseif的),最后else

if B //it's the most common operation, so at the beginning. 
{ 
    //add 
} elseif(something else) 
{ 
//the same add 
} elseif(c) 
{ 
//the same add 
} else 
{ 
//remove 
} 
+0

问题是,我们重复添加代码,它完全一样,所以可能只有一个“添加”会更好? – MEM 2010-09-03 11:12:54

+0

因此,添加代码的另一种方法... – 2010-09-03 11:15:10

+0

我看到...我们正在重复代码,所以要么我们喜欢Dezigo建议,要么抓住重复并将其转换为方法?或者我没有正确理解它? – MEM 2010-09-03 11:18:12

0
if(!A) { 
    add; 
} else { 
    remove; 
} 

短,在我看来清楚。

+1

但是当两者都是空的错误。 – Gumbo 2010-09-03 11:30:47

+0

@Gumbo你是对的。 Dident在规格中看到这种情况,所以我错过了它。 – InsertNickHere 2010-09-03 12:13:19

0

您可以使用OR操作符组合ç的条件:

if (empty($infos) && !empty($inputs) || !empty($infos) && $inputs != $infos) { 
    // add 
} else if (!empty($infos) && empty($inputs)) { 
    // remove 
} 
+0

当你提到两者时,你能评论你的评论吗?你指的是什么? :D – MEM 2010-09-03 11:39:26

+0

明白了。 :)信息和输入 – MEM 2010-09-03 11:54:18

+1

投票的原因是什么? – Gumbo 2010-09-03 13:33:06