title: decision code other than if then else
body: <p>I was wondering if someone could help me understand some code. Its a tic tac toe program..</p>
  
  <p>There is a section of the code I don't get, but seems to allow the system to distinguish between two choices.
  im used to saying something like this.</p>
  
  <pre><code>cout&lt;&lt;"enter choice.1 or 2";
  cin&gt;&gt;choice;
  </code></pre>
  
  <p>but in this code they have</p>
  
  <pre><code>player=(player%2)?1:2;
  </code></pre>
  
  <p>and this</p>
  
  <pre><code>mark=(player == 1) ? 'X' : 'O';
  </code></pre>
  
  <p><strong>Complete code</strong></p>
  
  <pre><code>char square[10] = {'o','1','2','3','4','5','6','7','8','9'};
  int checkwin();
  void board();
  
  int main()
  {
      int player = 1,i,choice;
      char mark;
      clrscr();
      do
      {
          board();
          player=(player%2)?1:2; //&lt;&lt;--- This part I don't understand
          cout &lt;&lt; "Player " &lt;&lt; player &lt;&lt; ", enter a number:  ";
          cin &gt;&gt; choice;
          mark=(player == 1) ? 'X' : 'O'; //&lt;&lt;--- This part I don't understand
          if (choice == 1 &amp;&amp; square[1] == '1')
              square[1] = mark;
          else if (choice == 2 &amp;&amp; square[2] == '2')
              square[2] = mark;
          else if (choice == 3 &amp;&amp; square[3] == '3')
              square[3] = mark;
          else if (choice == 4 &amp;&amp; square[4] == '4')
              square[4] = mark;
          else if (choice == 5 &amp;&amp; square[5] == '5')
              square[5] = mark;
          else if (choice == 6 &amp;&amp; square[6] == '6')
              square[6] = mark;
          else if (choice == 7 &amp;&amp; square[7] == '7')
              square[7] = mark;
          else if (choice == 8 &amp;&amp; square[8] == '8')
              square[8] = mark;
          else if (choice == 9 &amp;&amp; square[9] == '9')
              square[9] = mark;
          else
          {
              cout&lt;&lt;"Invalid move ";
              player--;
              getch();
          }
          i=checkwin();
          player++;
      }while(i==-1);
      board();
      if(i==1)
          cout&lt;&lt;"==&gt;\aPlayer "&lt;&lt;--player&lt;&lt;" win ";
      else
          cout&lt;&lt;"==&gt;\aGame draw";
      getch();
      return 0;
  </code></pre>