一、问题描述
问题简单描述: Visual Studio 2010调试结果和可执行文件都会输出一个.json文件,但是出现了一个问题,Visual Studio 2010调试输出的.json文件结果,是符合期望的,且每次输出结果完全一样,具有代码的可重复性,但是Visual Studio 2010发布(Release)的可执行文件,按理说,得到的结果,应该是和Visual Studio 2010调试输出的.json文件结果完全一致,但是实际现象是,每次输出的结果会缺失部分内容,且缺失是随机的。
二、问题分析
问题背景是车站的信号机,每个信号机都具备一个标志位,在后续的步骤中,首先会根据一系列条件语句,将标志位置为“false”, 在之后的判断中,会将标志位为“true”的信号机输出,标志位为“false”的信号机就不再输出。
出现了上述问题,这是因为,通过Visual Studio 2010调试,无论是Debug 还是Release ,都会在初始化时默认将标志位置为“true”,这样后续只会对部分的信号机,由“true”转为“false”,但是如果是用可执行文件,在初始化的时候,对信号机的标志位赋值是随机的,即既可能赋值为“true”,又可能赋值为“false”,这样后续的步骤中,并不会将那些初始化为“false”的信号机,修正为“true”,这样后续的逻辑中就会被筛除,不会被输出。
三、解决方法
在信号机的初始化部分,用明确的语句,对每一个的标志位都置“true“。