CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Page 1 of 2 12 LastLast
Results 1 to 15 of 20
  1. #1
    Join Date
    Oct 2013
    Posts
    9

    Question If else statement displaying both options.

    Hi, I am new to coding and have a question with my if else statement. This is a VERY simple program that I have made something like in Javascript before, but when I do it in C++ it does not work correctly. It displays both the options. Here is my code.
    // Practice.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include <iostream>

    using namespace std;

    int main()
    // Asking for a number
    {
    int x;
    cout << "Give me a number.";
    cin.ignore();
    cin >> x;
    if (x < 25)
    {
    cout << "That is a small number.";
    }
    else (x >= 25);
    {
    cout << "That is a big number!";
    }
    }

  2. #2
    GCDEF is offline Elite Member Power Poster
    Join Date
    Nov 2003
    Location
    Florida
    Posts
    12,635

    Re: If else statement displaying both options.

    Quote Originally Posted by Sensei Nacho View Post
    Hi, I am new to coding and have a question with my if else statement. This is a VERY simple program that I have made something like in Javascript before, but when I do it in C++ it does not work correctly. It displays both the options. Here is my code.
    // Practice.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include <iostream>

    using namespace std;

    int main()
    // Asking for a number
    {
    int x;
    cout << "Give me a number.";
    cin.ignore();
    cin >> x;
    if (x < 25)
    {
    cout << "That is a small number.";
    }
    else (x >= 25);
    {
    cout << "That is a big number!";
    }
    }
    You either need else without the condition, or add an if after the else. By itself (x >= 25) doesn't do anything. Further, since you have a semi-colon after your (x >=25) statement, the big number part isn't even part of the condition. It will always output.

  3. #3
    Join Date
    Oct 2013
    Posts
    9

    Re: If else statement displaying both options.

    OK thanks, but now it only displays "That is a small number."

  4. #4
    Join Date
    Oct 2013
    Posts
    9

    Re: If else statement displaying both options.

    Quote Originally Posted by GCDEF View Post
    You either need else without the condition, or add an if after the else. By itself (x >= 25) doesn't do anything. Further, since you have a semi-colon after your (x >=25) statement, the big number part isn't even part of the condition. It will always output.
    Thanks but now it only displays "That is a small number.". What am I doing wrong?

  5. #5
    GCDEF is offline Elite Member Power Poster
    Join Date
    Nov 2003
    Location
    Florida
    Posts
    12,635

    Re: If else statement displaying both options.

    Post your current code.

  6. #6
    Join Date
    Oct 2013
    Posts
    9

    Re: If else statement displaying both options.

    Quote Originally Posted by GCDEF View Post
    Post your current code.
    // Practice.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include <iostream>

    using namespace std;

    int main()
    // Asking for a number
    {
    int x;
    cout << "Give me a number.";
    cin.ignore();
    cin >> x;
    if (x < 25)
    {
    cout << "That is a small number.";
    }
    else
    {
    cout << "That is a big number!";
    }
    }

  7. #7
    Arjay's Avatar
    Arjay is offline Moderator / EX MS MVP Power Poster
    Join Date
    Aug 2004
    Posts
    13,490

    Re: If else statement displaying both options.

    In c++ always initialize your variables. Also step through your code or use trace statements to see what is wrong. Btw what does cin.ignore do?

  8. #8
    2kaud's Avatar
    2kaud is offline Super Moderator Power Poster
    Join Date
    Dec 2012
    Location
    England
    Posts
    7,822

    Re: If else statement displaying both options.

    Before posting, please format your code properly and use code tags. Go advanced, select the code and click '#'.

    Arjay has given you the hint asking about cin.ignore().
    All advice is offered in good faith only. All my code is tested (unless stated explicitly otherwise) with the latest version of Microsoft Visual Studio (using the supported features of the latest standard) and is offered as examples only - not as production quality. I cannot offer advice regarding any other c/c++ compiler/IDE or incompatibilities with VS. You are ultimately responsible for the effects of your programs and the integrity of the machines they run on. Anything I post, code snippets, advice, etc is licensed as Public Domain https://creativecommons.org/publicdomain/zero/1.0/ and can be used without reference or acknowledgement. Also note that I only provide advice and guidance via the forums - and not via private messages!

    C++23 Compiler: Microsoft VS2022 (17.6.5)

  9. #9
    Join Date
    Aug 2000
    Location
    West Virginia
    Posts
    7,721

    Re: If else statement displaying both options.

    What is the purpose of the following statement ?

    Code:
    cin.ignore();
    What does it do ? And how does it effect the input stream ? Hint: output the value of "x"
    after you read it in.

    Edit: Sorry ... I did not look at all the posts. I see that ignore() was already mentioned.

  10. #10
    Join Date
    Oct 2013
    Posts
    9

    Re: If else statement displaying both options.

    Quote Originally Posted by Arjay View Post
    In c++ always initialize your variables. Also step through your code or use trace statements to see what is wrong. Btw what does cin.ignore do?
    What do these mean?

  11. #11
    Join Date
    Oct 2013
    Posts
    9

    Re: If else statement displaying both options.

    Quote Originally Posted by 2kaud View Post
    Before posting, please format your code properly and use code tags. Go advanced, select the code and click '#'.

    Arjay has given you the hint asking about cin.ignore().
    How do I do this?

  12. #12
    Join Date
    Oct 2013
    Posts
    9

    Re: If else statement displaying both options.

    Quote Originally Posted by Philip Nicoletti View Post
    What is the purpose of the following statement ?

    Code:
    cin.ignore();
    What does it do ? And how does it effect the input stream ? Hint: output the value of "x"
    after you read it in.

    Edit: Sorry ... I did not look at all the posts. I see that ignore() was already mentioned.
    As far as I can tell, in a console program, it makes it so enter doesn't close the console.

  13. #13
    VictorN's Avatar
    VictorN is offline Super Moderator Power Poster
    Join Date
    Jan 2003
    Location
    Hanover Germany
    Posts
    20,395

    Re: If else statement displaying both options.

    Quote Originally Posted by Sensei Nacho View Post
    How do I do this?
    Begin with reading the Announcement: Before you post....
    Victor Nijegorodov

  14. #14
    Arjay's Avatar
    Arjay is offline Moderator / EX MS MVP Power Poster
    Join Date
    Aug 2004
    Posts
    13,490

    Re: If else statement displaying both options.

    Quote Originally Posted by Sensei Nacho View Post
    As far as I can tell, in a console program, it makes it so enter doesn't close the console.
    When you don't understand what something means, try to look it up in msdn. Do a search in bing or google for "std::cin:ignore".

    In the results look for something that contains msdn in the url.

    The second link in the bing results is basic_istream::ignore which may not look promising, but it does have msdn... in the url.
    http://msdn.microsoft.com/en-us/library/3w23zf49.aspx

    A good place to start.

    Pay particular attention to the sample code at the bottom of the page - especially the output that is shown after the code snippet.

  15. #15
    Arjay's Avatar
    Arjay is offline Moderator / EX MS MVP Power Poster
    Join Date
    Aug 2004
    Posts
    13,490

    Re: If else statement displaying both options.

    Quote Originally Posted by Sensei Nacho View Post
    What do these mean?
    Initialize your variables means to declare them and then set them. You can do this all in one step. In C++, initializing variables prevents a variable from starting out with garbage and it's a good practice to get into (because they are often a source of bugs).

    Code:
    int x;  // uninitialized variable it's anyone's guess what its starting value will be.
    
    int y = 0;  variable declared and initialized to 0

Page 1 of 2 12 LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured