Nested conditionals and switch

These are notes from 23 September.

a2sol.cpp

// A2 solution, Chris League
#include <iostream>
using namespace std;
int main()
{
    double distance;
    int choice;
    cout << "Enter distance: ";
    cin >> distance;
    cout << "Select unit for that distance:\n1. meters\n";
    cout << "2. kilometers\n3. miles\n4. yards\n";
    cout << "Enter choice: ";
    cin >> choice;
    if(choice == 1) // meters
    {
        cout << distance << " meters is:\n";
        cout << "   " << distance/1000 << " km\n";
        cout << "   " << distance * 0.00062137 << " miles\n";
        cout << "   " << distance * 1.0936 << " yards\n"; 
    }
    if(choice == 2) // km
    {
        cout << distance << " kilometers is:\n";
        cout << "   " << distance*1000 << " m\n";
        cout << "   " << distance * 0.62137 << " miles\n";
        cout << "   " << distance * 1093.6 << " yards\n"; 
    }
    if(choice == 3) // miles
    {
        cout << distance << " miles is:\n";
        cout << "   " << distance * 1.609 << " km\n";
        cout << "   " << distance * 1609 << " meters\n";
        cout << "   " << distance * 1760 << " yards\n"; 
    }
    if(choice == 4) // yards
    {
        cout << distance << " yards is:\n";
        cout << "   " << distance * 0.0009144 << " km\n";
        cout << "   " << distance / 1760 << " miles\n";
        cout << "   " << distance / 1.0936 << " meters\n"; 
    }
}

a2sol-better.cpp

// A2 solution, better version. Chris League
#include <iostream>
using namespace std;
int main()
{
    double distance;
    int choice;
    cout << "Enter distance: ";
    cin >> distance;
    cout << "Select unit for that distance:\n1. meters\n";
    cout << "2. kilometers\n3. miles\n4. yards\n";
    cout << "Enter choice: ";
    cin >> choice;
    // standard format will be meters
    if(choice == 1) // m 
    {
        cout << distance << " meters is:\n";
    }
    if(choice == 2) // km
    {
        cout << distance << " kilometers is:\n";
        distance = distance * 1000;
    }
    if(choice == 3) // miles
    {
        cout << distance << " miles is:\n";
        distance = distance * 1609.34;
    }
    if(choice == 4) // yards
    {
        cout << distance << " yards is:\n";
        distance = distance * 0.9144;
    }
    // NOW I know that distance in meters.
    if(choice != 1)
    {
        cout << "  " << distance << " meters\n";
    }
    if(choice != 2)
    {
        cout << "  " << distance/1000 << " kilometers\n";
    }
    if(choice != 3)
    {
        cout << "  " << distance*0.00062137 << " miles\n";
    }
    if(choice != 4)
    {
        cout << "  " << distance/1.0936 << " yards\n";
    }
    return 0;
}

nested.cpp

#include <iostream>
using namespace std;
int main()
{
    int x, y;
    cout << "Enter two integers: ";
    cin >> x >> y;
    if(x < 5)
    {
        if(y > 2)
        {
            cout << "C";
        }
        else
        {
            cout << "D";
        }
        cout << "B";
    }
    else
    {
        cout << "A";
        if(y > 9) 
        {
            cout << "E";
        }
    }
}

switch.cpp

#include <iostream>
using namespace std;
int main()
{
    // 0=Sunday, 1=Monday, 2=Tuesday, ...
    int dow;
    cout << "Enter day of week (0-6): ";
    cin >> dow;
//    if(dow == 0) {
//        cout << "Sunday\n";
//    }
//    else if(dow == 1) {
//        cout << "Monday\n";
//    }      
//    else if(dow == 2) {
//        cout << "Tuesday\n";
//    }
    
    switch(dow)
    {
    case 0: 
        cout << "Sunday\n"; 
        break;
    case 1: 
        cout << "Monday\n";
        break;
    case 2: 
        cout << "Tuesday\n";
        break;
    default:
        cout << "UNKNOWN DAY\n";
    }
    
    
    
    
}

suffix.cpp

#include <iostream>
using namespace std;
int main()
{
    int x;
    cout << "Enter integer: ";
    cin >> x;
    cout << x;
    switch(x)
    {
        case 1: case 21: case 31:
            cout << "st";
            break;
        case 2: case 22:
            cout << "nd";
            break;
        case 3: case 23:
            cout << "rd";
            break;
        default: cout << "th";
    }
    cout << "\n";
    return 0;
}