In VS I am told this function “does not return a value in all control paths.” A bot told me specifically the issue is with this line: else if (letter + key <= 90). It said that if the outcome results in letter + key equally exactly 90 then a value is not returned, but I thought that was covered where ‘<=’ means ‘less than or equals.’

char rotate(char letter, int key)
{
    if (isalpha(letter) == true)
    {
        if (letter + key > 90)
        {
            int overage = letter + key - 90;
            letter = 64 + overage;

            while (letter > 90)
            {
                overage = letter - 90;
                letter += overage;
            }

            return letter;
        }

        else if (letter + key &lt;= 90)
        {
            letter += key;
            return letter;
        }
    }

    else if (isalpha(letter) == false)
    {
        return letter;
    }
  • macniel@feddit.de
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    you are checking the result of a method that returns a boolean (true/false) there is no reason to check for true, else, FILE_NOT_FOUND. you can also forgo equating its return value to something to get a boolean value required for the if statement since its already a boolean value.

    e.g.

    if (isalpha(letter)) 
    { 
       // ...
    } 
    else 
    { 
       // ...
    }