本节书摘来自异步社区出版社《C++游戏编程入门(第4版)》一书中的第2章,第2.14节,作者:【美】Michael Dawson(道森),更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.14 问与答
C++游戏编程入门(第4版)
问:必须使用关键字true和false吗?
答:不一定,但最好这样做。在有关键字true和false之前,程序员经常使用1代表true,0代表false。然而,既然有了true和false,最好使用它们而不是过时的1和0。
问:可以将true或false以外的值赋给bool型变量吗?
答:可以。可以将表达式赋给bool型变量,变量将存储表达式的真或假。
问:可以使用switch语句对某个非整数值进行验证吗?
答:不可以。switch只能用于可以解释成整数的值(包括char型值)。
问:如何不使用switch语句来完成单个非整数值与多值的比较?
答:可以使用if语句序列。
问:什么是无限循环?
答:无论用户输入什么也不会终止的循环。
问:为什么无限循环不好?
答:因为陷入无限循环的程序不会自行终止,它必须由操作系统来关闭。最糟糕的情况是,用户必须通过关闭计算机来终止陷入无限循环的程序。
问:编译器不会捕获无限循环并报错吗?
答:不会。无限循环是逻辑错误,即那种必须由程序员发现的错误。
问:如果无限循环不好,那while(true)也不好吗?
答:不是的。程序员创建一个while循环时应当提供循环终止方式(通常通过break语句)。
问:为什么程序员要创建while(true)循环?
答:while(true)循环经常用于程序主循环,如游戏主循环。
问:为什么有些人认为使用break语句退出循环不是好的编程方式?
答:因为break语句的滥用会让人难以理解循环的终止条件。然而,有时在while (true)循环中使用break语句可能比使用传统方式创建同样的循环更加清晰易懂。
问:什么是伪随机数?
答:通常由数学公式生成的随机数。所以,伪随机数序列不是真正的随机数。但它对于大多数任务来说已经足够好了。
问:为随机数生成器确定种子是什么意思?
答:是指给随机数生成器提供一个种子,如一个整数,它能影响生成器产生随机数的方式。如果不为随机数生成器确定种子,那么每次程序开始运行时都会产生相同的数列。
问:是不是在使用随机数生成器之前,总是应该为它们确定种子?
答:不一定。例如,可能为了测试的目的,希望每次程序运行时都产生一模一样的“随机”数序列。
问:如何生成更加真实的随机数?
答:有这样的第三方库,它们可以产生比C++编译器更好的伪随机数。
问:所有游戏都使用游戏主循环吗?
答:游戏主循环只是一种看待游戏事件流的方式。这种模型适合特定的游戏并不意味着游戏必须以这种循环执行主要代码的形式实现。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。