Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

The GNU C Programming Tutorial - do...while

Node:do...while, Next:, Previous:while, Up:Loops



do...while

The do..while loop has the form:

do
{
  do something
}
while (condition);

Notice that the condition is at the end of this loop. This means that a do..while loop will always be executed at least once, before the test is made to determine whether it should continue. This is the chief difference between while and do...while.

The following program accepts a line of input from the user. If the line contains a string of characters delimited with double quotation marks, such as "Hello!", the program prints the string, with quotation marks. For example, if the user types in the following string:

I walked into a red sandstone building. "Oof!" [Careful, Nick!]
...then the program will print the following string:
"Oof!"

If the line contains only one double quotation mark, then the program will display an error, and if it contains no double quotation marks, the program will print nothing.

Notice that the do...while loop in main waits to detect a linefeed character (\n), while the one in get_substring looks for a double quotation mark ("), but checks for a linefeed in the loop body, or main code block of the loop, so that it can exit the loop if the user entered a linefeed prematurely (before the second ").

This is one of the more complex examples we have examined so far, and you might find it useful to trace the code, or follow through it step by step.

#include <stdio.h>

int main();
void get_substring();


int main()
{
  char ch;

  printf ("Enter a string with a quoted substring:\n\n");

  do
  {
    ch = getchar();
    if (ch == '"')
    {
      putchar(ch);
      get_substring();
    }
  }
  while (ch != '\n');

  return 0;
}


void get_substring()
{
  char ch;

  do
  {
    ch = getchar();
    putchar(ch);

    if (ch == '\n')
    {
      printf ("\nString was not closed ");
      printf ("before end of line.\n");
      break;
    }
  }
  while (ch != '"');

  printf ("\n\n");
}

 
 
  Published under free license. Design by Interspire