|
楼主 |
发表于 2009-12-26 10:17:09
|
显示全部楼层
山西省吕梁市
回复 1# 鲁凯啸 4、从几种判断星期几的方法看编程思路
思考下面的判断星期几的多种程序实现方法,从中选择更好的方法,可以开拓我们的编程视野,锻炼编程思维的灵活性。
“取星期几”命令是返回一个值为 1 到 7 之间的整数,表示一个星期中的某一日。星期日为 1,星期一为 2,依此类推。为什么这样?因为西方的每个礼拜周是从星期日算起的,到星期一、星期二、、、星期六是周末,而西方的礼拜假在周始日,即星期日和星期一放假。易语言的“取星期几”命令其实是沿用西文编程的习惯,所以无法直接获取星期几,所以我们要自制一个函数来完成这项功能。
一、流程控制方法:
子程序:取星期
返回值类型:文本型
星期 = 取星期几 (取现行时间 ())
如果真 (星期= 1)
返回(“今天是:星期日”)
如果真结束
如果真 (星期= 2)
返回(“今天是:星期一”)
如果真结束
如果真 (星期 = 3)
返回(“今天是:星期二”)
如果真结束
如果真 (星期 = 4)
返回(“今天是:星期三”)
如果真结束
如果真 (星期 = 5)
返回(“今天是:星期四”)
如果真结束
如果真 (星期= 6)
返回(“今天是:星期五”)
如果真结束
如果真 (星期 = 7)
返回(“今天是:星期六”)
如果真结束
二、更精简的流程控制命令方法:
子程序:取星期
返回值类型:文本型
局部容器:星期 数据类型:整数型
星期 = 取星期几 (取现行时间 ())
判断 (星期 = 1)
返回 (“星期日”)
默认
返回 (“星期” + 数值到大写 (星期 - 1, 真))
判断结束
三、多项选择方法:
子程序:取星期
返回值类型:文本型
局部容器:星期 数据类型:整数型
星期 = 取星期几 (取现行时间 ())
返回(多项选择(星期, “星期日”, “星期一”, “星期二”, “星期三”, “星期四”, “星期五”, “星期六”))
以上三种代码中,第一种代码可能是一般人首先想到的,因为各个星期几的性质的一样的,所以很容易就用到“如果真”或多项判断,其中多是受到思维定势的影响。首先想到用这种方法或第二种方法的人应该比较普遍,因为较容易理解。
而第二种方法是在第一种方法上的进一步精简。当用第一种代码时,可能你会想,每增加一个选择项,就要增加一个“如果真”或“判断”,代码行是不是多了一点。于是你想到星期值除了星期日,对应的星期几比它多1,于是你就想到 返回 (“星期” + 数值到大写 (星期 - 1, 真))。也有一部分人首先想到的是这种方法,一般来说头脑比选第一种方法的人更快捷,更容易接近事物本质。
选第三种方法的人一般对命令运用较娴熟,思考也更快捷、直击事件本质。所以当你想精简代码时,就可以考虑运用后两种更简便的方法。
从上可知,要培养你的编程思路,一要对易语言的语法、命令等各方面都要熟悉,二是要花一点时间来优化、精简你的代码,三是尽量摆脱思维惯性,培养思维的快捷性,扩展编程视野。 |
|