bug_ warning: control reaches end of non-void function

bug_ warning: control reaches end of non-void function

摘要

在leetcode上编译时,它显示我编译错误

warning: control reaches end of non-void function

它的意思是:控制到达非void函数的结尾。就是说你的一些本应带有返回值的函数到达结尾后可能并没有返回任何值。这时候,最好检查一下是否每个控制流都会有返回值。

错误原因

bool isPalindrome(int x) 是一个函数,但是我只在if里面加了返回值,没有在函数里加返回值,万一所以if都不成立呢?那么这个函数就没有输出了。这就是错误的原因

解决办法

只需在bool isPalindrome(int x) 最后加一个return 0;即可

源代码

这个代码只用作这个bug,作为回文数判断的话,这个代码是错误的

 1 class Solution {
 2 public:
 3     bool isPalindrome(int x) {
 4     int y,a;
 5     if(x<0)
 6         return false;
 7     else if (x==10)
 8         return false;
 9     else if (0<=x&x<10)
10         return true;
11     while(x>10){
12         y = x % 10;
13         while(x>=10)
14         a =    x/10;
15         if (a==y)
16             return true;
17         }
18     return 0;
19   }
20 };