顺序结构:
顺序执行语句
分支结构:
通过进行一个判断在两个可选的语句序列之间选择执行(分支)
if语句:根据给定条件进行判定,以执行某个分支程序段,最多只能执行一个分支,可不执行分支。
①
if(条件表达式){ 语句1; }
当条件表达式为真,执行语句1,否则,跳过语句1,继续执行下面的语句
②
if(条件表达式);{ 语句1; }
表达式括号后跟了“;”,导致if语句为空语句,大括号内的语句跟if语句没有关系,无论条件真假都会执行语句1
③级联式
if(条件表达式1){ 语句1; } else if(条件表达式2){ 语句2; } else{ 语句3; }
哪个条件表达式为真则执行哪个语句,当if和else if的条件表达式都为假时,执行else里的语句3
条件运算符:通常有两个分支,只执行一个分支
条件表达式 ? 表达式1 : 表达式2;
如果条件表达式为真,整个条件表达式的值为表达式1的值;
如果条件表达式为假,整个条件表达式的值为表达式2的值。
int c = a > b ? a : b;
switch语句:多分支语句,通过判断整型表达式的值,来决定执行语句,通常与case配合使用
switch ——开关,case ——情况,开关决定发生的情况
switch(表达式){ case 值1:{语句1;break;} //语句中需定义变量时加{},不定义可不加 case 值2:{语句2;break;} …… case 值n:{语句n;break;} default:{语句n+1;break;} //以上case的情况都不满足时执行 }
break用在switch…case中用于结束某个case,然后执行switch之外的语句。
case后面的标签只能是整型常量或者整型常量表达式,不能用变量作为case的标签。
switch语句比if-else级联式更容易阅读,更直观。
- 整个default语句可以舍弃掉
- 多个case(语句块一样时)可以运行一个语句块
- case中定义变量需要加{}
循环结构:
在满足某个条件的时候反复执行一个语句序列(循环)
特定条件称为循环条件,反复执行的程序段称为循环体
①while循环(先判断,后执行)
while(条件表达式){ 语句; }
条件表达式为真,执行循环体;一旦条件表达式为假,停止循环。
②do…while循环(先执行,后判断)
do{ 语句; }while(条件表达式);
先执行循环体,再判断循环条件,直到条件不满足的时候,停止循环。
③for循环(先判断,后执行)
for(循环变量初始化;循环条件;循环增量){ 语句; }
先进行循环变量初始化,一般是以循环变量为条件判断,若循环条件为真,执行语句后,再执行循环增量,进入下次循环继续判断循环条件。
break:
在switch语句中,其作用是跳出switch语句;
在循环体中,其作用是跳出本层循环(通常与if语句连用)
while(条件表达式1){ if(条件表达式2){ 语句1; break; }
语句2; }
当条件表达式2为真时,执行语句1后跳出循环,不再执行语句2,也不再继续循环。
continue:
在循环体中的作用是结束本次循环(continue后面的代码不再执行),进入下次循环(通常与if连用)
while(条件表达式1){ if(条件表达式2){ 语句1; continue; } 语句2; }
当条件表达式2为真时,执行语句1后结束本次循环,不再执行语句2,再看条件表达式1若为真,则进入下次循环,否则跳出循环。
循环嵌套:
一般使用for循环嵌套
例子:九九乘法表
c语言版:
1 #include<stdio.h>
2 int main() 3 { 4 for(int i = 1; i <= 9; i++) //行
5 { 6 for(int j = 1; j <= i; j++) //列
7 { 8 printf("%d*%d=%d",i,j,i*j); 9 printf(" "); 10 } 11 printf("\n"); 12 } 13 return 0; 14 }
c++版:
1 #include<iostream>
2 using namespace std; 3 void jiu(int n) 4 { 5 for(int i = 1; i <= n; i++) //行
6 { 7 for(int j = 1; j <= i; j++) //列
8 { 9 cout << i << "*" << j << "=" << i * j; 10 cout << " "; 11 } 12 cout << endl; //回车
13 } 14 } 15 int main() 16 { 17 int n = 9; 18 jiu(n); 19 return 0; 20 }
c#版:
1 using System; 2
3 namespace ConsoleApplication1 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 for (int i = 1; i <= 9; i++) 10 { 11 for (int j = 1; j <= i; j++) 12 { 13 Console.Write("{0}*{1}={2}", i, j, i * j); 14 Console.Write(" "); 15 } 16 Console.WriteLine(); //换行
17 } 18 Console.ReadKey(); 19 } 20 } 21 }
结果: