(题目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");
}

 

 

 

 

------

写在最后:

题目不是目的,而是要从中得到一些收获。甚至,得不得到收获也不是目的,而是在紧张的工作学习之余放松一下你的大脑,就当是给大脑做个眼保健操吧 ^ ^

 

 

 

 

 

 

 

posted @ 2014-06-10 14:16  Antineutrino  阅读(471)  评论(6编辑  收藏  举报