Q:

C++ Recursive functions

I'm learning C++ and I have trouble with getting recursion working when a function is called by itself. 
#include <iostream>

using namespace std;

int countdown(int y) {
    if (y==1) {
        return 1 && cout << y << endl;
    }
    else {
        return countdown(y-1);
    }
}

int main () {
    cout << "Countdown from ten: " << endl;
    cout << countdown(10) << endl;
}

Of course there are other ways to achieve this, but really I created this example to verify my own understanding of how functions are called recursively.
In the example I added && cout << y to verify if y is being passed to the function as 1, which always appears to be the case irrespective that I call the function as countdown(10).
Could someone tell me if I'm missing something obvious here please?

A:

Your ' cout << y ' only executes if y has been tested to be one.
This version does what I think you want:
#include <iostream>
using namespace std;

int countdown(int y) 
{
    cout << y << endl;
    if (y==1)
    {
        return 1;
    }
    else 
    {
        return countdown(y-1);
    }
}

int main() 
{
    cout << "Countdown from ten: " << endl;

    cout << countdown(10) << endl;
}

