@为何逻辑如此重要?
逻辑是消除歧义的工具,我们平时使用的语言---》自然语言,是极易产生歧义的,程序员必须走出自然语言歧义的迷宫(Maybe,可能等自然语言)。程序只有0和1,true或false,><=。
致对逻辑持否定意见的读者----》对程序员来说,运用逻辑思考问题至关重要,计算机可不管我们的喜怒哀乐,它总是按照逻辑运行(0和1)。
“程序,给我好好运行啊!”,无论怎样对它说多少次,逻辑上有错的程序都不会正确运行。反之,逻辑上正确,程序运行几百万次也不会出错,因此也不必担心程序不好好运行,程序是不为我们的感情所动的。
很多人都觉得,"逻辑冰冷且机械死板",确实,逻辑有这种特征,但正因如此,它才有用,人类易被感情左右,但计算机不同,正因为它冰冷且机械死板,计算机才会一直稳定地运行,给我们所用。
程序员处于人类和计算机的分界线上(中间,人与机器的中间,我们是人,我们有感情,我们是程序员,我们不能有太多的感情。),只要做到逻辑性的思考和表达,就不会被常识和感情所困,从而写出符合要求的规格说明和程序。程序员应努力将问题转化为程序,让计算机有活可干。
@逻辑的基本是两个分支(if...else)。
熟练的程序员,并不用特意去想“完整性和排他性”也能写出if语句,但是如果不去想完整性和排他性,就很容易产生bug,所以,在编写简单的if语句时,也必须兼顾完整性和排他性(即全面的判断,条件不矛盾的判断,不重复的判断。)
逻辑从根本上说是对完整性和排他性的组合表达,虽然完整性和排他性只是两个简单的特性,但存在于任何一个或简单或复杂的命题之中。
1,逻辑完整性:没有遗漏(全面的判断,没有遗漏条件),即完整性,由此明确该规则无论在什么情况下都能适用。例如,6岁以上的人上车买票要100元,6岁以下的人买车票要0元,就有遗漏,破坏了判断的完整性,遗漏了6岁的人,6岁的人买车票怎么办?(遗漏了条件,遗漏了判断)
2,逻辑排他性:没有重复(不重复判断,条件不矛盾),即排他性,由此明确该规则不存在矛盾之处。程序中,进行多处判断时,有可能产生重复判断,甚至矛盾判断。例如age>=6和age>7就有矛盾之处,有重复,矛盾条件。
遇到大问题时,通常将其分解为多个小问题(分治思想),这时常用的方法就是检查它的完整性和排他性,即使是难以解决的大问题,也能通过这种方法转换成容易解决的小问题。
@运用逻辑实现简化:
@采用画图法,逻辑判断。
---画一根数轴辅助思考
---还可以用下边绘图方式,表示逻辑判断