前言
本文将介绍基础的三类流程控制语句:顺序结构、分支结构和循环结构
顺序结构
顾名思义,该结构内的语句是按顺序执行的,没有特别要注意的知识点
public class Example { public static void main(String[] args) { System.out.println(1); System.out.println(2); System.out.println(3); } }
分支结构
分支结构内包含两种语句:if语句和switch语句
if语句
第一种if语句的固定格式如下
if(关系表达式){ 语句体; }
当关系表达式的值为true,则执行语句体,否则执行大括号后面的语句;当对一个bollean型进行判断时可以直接在括号内写变量名,而不是使用“==”来进行判断
用IDEA来实现一下
public class Example { public static void main(String[] args) { int a = 5 , b = 2; boolean result = a > b; if(result){ System.out.println("a比b大"); } } }
第二种if语句固定格式如下
if(关系表达式){ 语句体1; } else{ 语句体2; }
与第一种不同,当关系表达式为false时,会执行语句体2
用IDEA来实现一下
public class Example { public static void main(String[] args) { int a = 2 , b = 5; boolean result = a > b; if(result){ System.out.println("a一定比b大"); } else{ System.out.println("a一定不比b大"); } } }
第三种if语句是if语句内再嵌套if语句,较为复杂,其格式如下
if(关系表达式){ 语句体1; } else if{ 语句体2; } … else{ 语句体n }
同样,用IDEA来实现一下
public class example { public static void main(String[] args) { int a = 2 , b = 2; boolean result = a > b; if(result){ System.out.println("a一定比b大"); } else if(a < b){ System.out.println("a比b小"); } else{ System.out.println("a和b一样大"); } } }
switch语句
switch语句的固定格式如下
switch(表达式){ case 值1 : 语句1 ; break; case 值2 : 语句2 ; break; case 值3 : 语句3 ; break; : : case 值n : 语句n ; break; default : 语句体n+1 ; break;
计算机在执行语句时会按顺序一条条比较case中的值是否符合表达式,直到找到符合的那一条后执行这个case下的语句并退出循环。
public class example { public static void main(String[] args) { int num = 3; switch (num){ case 1 : System.out.println("值为1");break; case 2 : System.out.println("值为2");break; case 3 : System.out.println("值为3");break; case 4 : System.out.println("值为4");break; default: System.out.println("值为5");break; } } }
以下是switch语句需要注意的点
1.case后的值一定要不同,否则会出现报错情况
2.每个语句后一定要加“break”,否则会出现case穿透的情况,会自动执行下一个语句,直到遇到下一个break或者遇到大括号才不会继续往下执行
3.case后的值只能是字面量,不可以是变量,否则会报错
4.default可以放在任何一个地方(大括号内)也可以删除,并不会报错,且运行结果与原来的一致(如果满足的条件在case语句内)
循环结构
循环结构内包含三个语句:for语句、while语句和do while语句
for语句
for语句的固定格式如下
for(初始化语句;条件判断语句;条件控制语句){ 循环体语句; }
用IDEA来实现一下
public class example { public static void main(String[] args) { int i = 1; for(i = 1 ; i <=5 ; i++) System.out.println(i); } }
有关for语句最经典的题目就是求和问题,比如求1累加到100的和可以用如下代码实现
public class Example{ public static void main(String[] args) { int i = 1 , sum = 0; for(i = 0 ; i <= 100 ; i++) sum = sum +i; System.out.println("和是:"+sum); } }
这道题就是将1-100内每一个数都输出一遍并累加,还可以优化代码:
将 sum = sum + i 改为 sum+=i
while语句
while语句就是将初始化语句和条件控制语句提出,其格式如下
初始化语句 while(条件判断语句){ 循环体语句; 条件控制语句; }
当条件判断语句的值为true时才会执行下面大括号内的语句,否则不执行循环体内的语句
上面用for语句打印输出1-5也可以用while语句来实现
public class example { public static void main(String[] args) { int i = 1; while (i <= 5) { System.out.println(i); i++; } } }
do while语句
do while语句和while语句并没有太大的差别,唯一的差别就算do while语句要先自循环一次再判断是否满足条件,所以并不是很常用,其结构如下
初始化语句 do{ 循环体语句 条件控制语句 }while(条件判断语句);
public class example { public static void main(String[] args) { int i = 1; do{ System.out.println(i); i++; }while (i <= 5); } }
唯一要注意的就是while后要加分号
小结
在循环结构中,while语句和for语句运行结果相同,但是适用的场景不同。while语句适用于只知道循环结束条件,而不知道循环次数和范围的情况;for语句则适用于知道循环次数或者循环范围的情况