codecamp

真与假的二元世界

逻辑的基本是两个分支(if...else)。

熟练的程序员,并不用特意去想“完整性和排他性”也能写出if语句,但是如果不去想完整性和排他性,就很容易产生bug,所以,在编写简单的if语句时,也必须兼顾完整性和排他性(即全面的判断,条件不矛盾的判断,不重复的判断。)


逻辑从根本上说是对完整性和排他性的组合表达,虽然完整性和排他性只是两个简单的特性,但存在于任何一个或简单或复杂的命题之中。

  1,逻辑完整性:没有遗漏(全面的判断,没有遗漏条件),即完整性,由此明确该规则无论在什么情况下都能适用。例如,6岁以上的人上车买票要100元,6岁以下的人买车票要0元,就有遗漏,破坏了判断的完整性,遗漏了6岁的人,6岁的人买车票怎么办?(遗漏了条件,遗漏了判断)

  2,逻辑排他性:没有重复(不重复判断,条件不矛盾),即排他性,由此明确该规则不存在矛盾之处。程序中,进行多处判断时,有可能产生重复判断,甚至矛盾判断。例如age>=6和age>7就有矛盾之处,有重复,矛盾条件。


遇到大问题时,通常将其分解为多个小问题(分治思想),这时常用的方法就是检查它的完整性和排他性,即使是难以解决的大问题,也能通过这种方法转换成容易解决的小问题。

0 所起的作用
逻辑是消除歧义的工具
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }