如图,为什么主程序运行完之后,主窗口中的按钮中显示的是skquestion,而不是askokcancel?
它最开始给n赋值0,那么cmd函数最先执行哪个方式?不是有个n=n+1?我感觉好像是先执行n==1那一项,但又好像不对。请分析一下这个程序的执行先后顺序。
顺序确实是按照书中 cancel->question->yesno->error->showinfo 的,不过程序展现出来的并不一定与能让你看出来他的顺序。
他的执行流程是这样的:
1.弹出第一个消息框(cancel), 显示可以弹出第二个消息框(question)的按钮
2.点击按钮后,弹出第二个消息框(question),显示可以弹出第三个消息框(yesno)的按钮
所以他的的逻辑顺序是先 cancel 后 question 的,只不过 体现在消息框上,而第一个消息框不好看出来 他是cancel,因为他不像question消息框那样有按钮可以按方便查看,所以你可以理解, 代码实际逻辑的第一个 是cancel,但是显示给人(此处的人指未知运行逻辑的人)看的时候是question 先出来导致相当于数组错误的从1开始数,而实际上,数组是从第0个下标开始数的,希望你可以理解。