当前位置: 首页 > 知识库问答 >
问题:

警告:控件可能到达非空函数的末尾问题

别峻
2023-03-14

我做了RGB到十六进制的转换。我的程序在联机编译器中运行得很好,但在代码战中有一个问题“控制可能到达非空函数的末端”。我该怎么办?是否应删除for循环?

using namespace std;
#include <iostream>
#include <string>

int checkForNumber(int input) {
    if (input > 255) return 255;
    if (input < 0) return 0;
    else return input;
}
string check(int input) {
    if (input < 10) return to_string(input);

    switch (input)
    {
    case 10:
        return "A";
        break;
    case 11:
        return "B";
        break;
    case 12:
        return "C";
        break;
    case 13:
        return "D";
        break;
    case 14:
        return "E";
        break;
    case 15:
        return "F";
        break;
    }
}
**string YES(int input) {
    string m;
    char temp;
     for (int i = 0; i < 2; i++) {
        m += check(input % 16);
        input /= 16;**
//problem is somewhere here
    }
    temp = m[0];
    m[0] = m[1];
    m[1] = temp;
    return m;
}
int main()
{
    string output;
    ios_base::sync_with_stdio(false);
    int r = 148 , g = 0, b = 211;
    r = checkForNumber(r);
    g = checkForNumber(g);
    b = checkForNumber(b);
    
   output += YES(r) + YES(g) + YES(b);
   cout << output;
    
}

共有1个答案

公羊信厚
2023-03-14

问题出在check(int input)函数中--考虑一下如果input参数的值不在[10,15]范围内会发生什么。我建议在switch块的底部放入一个default:大小写,该大小写返回适当的内容。

 类似资料:
  • 我有一个经过修改的二分搜索函数,它在一个向量中找到最小值(最接近L的值--一个已知值)和最大值(最接近R的值--相同的已知值)。不幸的是,当我试图编译代码时,我得到了这个警告,我不知道为什么:控制到达非空函数的末端。

  • 问题内容: 最近更新到PHP 7.1,并开始出现以下错误 警告:第29行遇到非数字值 这是第29行的样子 在本地主机上一切正常。 任何想法如何解决这个问题或它是什么? 问题答案: 似乎在PHP 7.1中,如果遇到非数字值,将发出警告。请参阅此链接。 这是与您收到的警告通知有关的相关部分: 当使用期望数字或它们的赋值等效项的运算符强制无效字符串时,将引入新的E_WARNING和E_NOTICE错误。

  • 问题内容: 是否可以在不首先完全定义函数的情况下调用函数?尝试执行此操作时,出现错误:“未定义 function_name ”。我来自C ++背景,因此这个问题使我感到困惑。 在工作之前声明该功能: 但是,尝试在未先定义函数的情况下调用该函数会带来麻烦: 在C ++中,一旦将其标头放在函数后,就可以在调用后声明一个函数。 我在这里想念什么吗? 问题答案: Python中一种惯用的方式是编写: 只要

  • 我不知道确切的原因,但是我的tableview的滚动条永远不会结束。 这是桌面视图的中间,一切看起来都很好 但当我走到尽头 滚动条没有到达终点... 我想我的约束是可以的(我使用的是autolayout),因为除了滚动条,tableview显示得很好。 我的视图控制器是一个,只包含一个。下面是一个屏幕截图,总结如下: 代码未添加任何约束。你知道我怎么调试这个吗? 提前谢谢 编辑:我试图删除和重新创

  • 问题内容: 在我当前的项目中,我们总是在Java源文件的末尾插入一个空的新行。我们还使用CheckStyle(具有错误级别)来强制执行此操作。 我一直在寻找这个主题很长时间,但是不幸的是,我找不到任何令人信服的理由。似乎其他开发人员对此无动于衷,因为他们只是选中了Eclipse formatter中的一个复选框,并且它是自动完成的。但是我仍然不知道为什么需要它,为什么它很重要。所以我的问题是: 为

  • 问题内容: 我有一个清单: 列表的长度不确定,因此我尝试将对象追加到list1的末尾,如下所示: 但是我的输出始终显示此错误:AttributeError:’NoneType’对象没有属性’append’ 这是因为list1从一个空列表开始吗?如何解决此错误? 问题答案: 实际 更改 列表。同样,它需要一个 item ,而不是一个列表。因此,您所需要做的就是 (请注意,在这种情况下,您可以使用。)