Every statement in C++ must end with a semicolon as per basics. However, unlike other languages, almost all statements in C++ can be treated as expressions. However there are few scenarios when we can write a running program without semicolon.
If we place the statement inside an if/switch/while/macro statement with a blank pair of parentheses, we don’t have to end it with a semicolon. Also, calling a function that returns void will not work here as void functions are not expressions. We can although use a comma operator, with any value in the right hand side of the operator.
Examples:
- Using if statement:
Output:CPP // CPP program to print // Hello World without semicolon // using if statement #include <iostream> int main() { if (std::cout << "Hello World ") { } }
Hello World
- Using switch statement:
Output:CPP // CPP program to print // Hello World without semicolon // using switch statement #include <stdio.h> int main() { switch (printf("Hello World ")) { } }
Hello World
- Using macros
Output:CPP // CPP program to print // Hello World without semicolon // using macros #include <stdio.h> #define GEEK printf("Hello World") int main() { if (GEEK) { } }
Hello World
- Using loops (while and for) : Here, important thing to note is using !(not operator) in while loop to avoid infinite loop.
CPP // CPP program to print // Hello World without semicolon // using if statement #include<iostream> int main() { while (!(std::cout << "Hello World")) { } // for loop can also be used // where testing condition has cout statement // for (;!(std::cout << "Hello World");) // { } }
Hello WorldRelated Article: How to print a semicolon(;) without using semicolon in C/C++?