fix the exercise 5.4

 ```cpp
if (!find(word)) { /* . . . */ }
else while (true) { /* . . . */ }
```
If the function find return true at first, it will exec the while statement. Then always in the loop.
We have different understanding about the question.  
```cpp
while (bool status = find(word)) {/* ... */}
if (!status) {/* ... */}
```
In my opinion, `while (bool status = find(word))` means that we should judge whether find(word) is true or not every loop, rather than only one judge at the first. The variable `word` may change in the while statement. Until `find(word)=false`, we leave the loop and exec the if statement