(题目3)在平行世界穿行
我们知道,条件语句就是根据条件是否成立来选择执行某一个分支。通常来说,你不能让语句中的2个不同分支都执行,它们是互相平行的。
例如,下面的程序(C语言)会打印出“hello if”。因为if的条件为真。
if (1==1) { printf("hello if\n"); } else { printf("hello else\n"); }
问题来了:请问,在不改变if条件和整体结构的前提下,你是否有办法让它可以同时打印“hello if”和“hello else”呢?
PS:当然,你也不能在if或整个程序的后面写一个printf()或其他任何输出函数来打印“hello else”。
完成这个题目后,你可以再试试后面更有挑战性的“加强版”。
----------------------------------------
【进阶版】
如果if的条件是未知的,执行时它可能为true也可能为false(这更具有普遍性),你会怎么办呢?
if (???) { printf("hello if\n"); } else { printf("hello else\n"); }
------
写在最后:
题目不是目的,而是要从中得到一些收获。甚至,得不得到收获也不是目的,而是在紧张的工作学习之余放松一下你的大脑,就当是给大脑做个眼保健操吧 ^ ^