首先我们来看一个例子:让输出100-200之间的所有质数。
这是所有编程初学者都会遇到一个题。看到这个题我们几乎都知道要用到循环for,要用到if判断,但是具体到怎么写的时候,就不知道怎么动笔了。
其实在学习的时候,老师讲解示范的时候,会在写代码前,用//写注释,写我们每一步要做什么。
//目的:输出100-200之间的质数//首先,要判断一个数是不是质数//是质数要怎么样,不是质数要怎么样
这样一写,就相当于一个流程图,每一步我们要做什么就非常清楚了,只需要慢慢填入相应的代码就可以。所以在开始学习的时候,更多的是学习解题的那种思维方式,把一个程序分为几个小段,一步一步来。
我不知道其他初学者对于买桃的这个问题感觉怎么样,反正我觉得特别简单。在写程序前,根据题意先分析、步骤:
//步骤:换桃,吃桃,再换//每次循环就是换桃,在把桃变成核,//换来的桃子数=桃核/3//剩下的桃核=桃核%3//换来的桃子数=桃核/3//桃核=换来的桃子数+上次换桃剩下的桃核数//桃子总数=已经吃的+换来的
这样一分析,就很简单了,就是一个当桃核数大于等于3个时发生的循环,循环体的内容,只要把桃子数和核的数改为相应变量,就可以直接写出来了。
同时,作为初学者,我们的思维还有一个需要改变的地方就是,对一件事的难易程度的判断。
之前看到一个求2个数的最大公约数,最小公倍数的题,然后和同学一通讨论,分解质因数,用数组·····然后看到程序,最大公约数一个遍历,最小公倍数一个遍历,简单到爆。这个就是思维方式没有转变过来的原因,因为在我们看来,一个数一个数的去试是不是我们需要的数,是非常麻烦的一件事,但计算机恰恰觉得这是一件so easy的事。
所以,在学习的时候,我们要更多的去贴近计算机的思维方式,而不是我们生活中的方式。