《程序大圣的修炼之路》.第三章 JAVA语句的执行结构
什么是JAVA语句的执行结构
1 JAVA语句有哪些结构
顺序结构
分支结构
循环结构
顺序结构是最简单的程序结构,也是最常用的程序结构,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
(2)分支(选择)结构——If语句
1.简单if语句
if语句对条件表达式进行一次判断,若判断为真,则执行代码块语句,否则跳过代码块语句
语法:
if (条件) { 代码块 }
当布尔表达式为真时,执行语句块1,否则,执行语句块2。
语法:
if (条件) { 代码块1 }else{ 代码块2 }
3.多重if语句
逐条if语句进行判断,条件匹配,进入代码块,否则对if语句继续匹配。
语法:
if (条件1) { 代码块1 }else if(条件2){ 代码块2 }else{ 代码块3 }
4 .嵌套if语句
嵌套语法,就是在原有的if结构条件满足或者不满足的 { } 里面,继续写if结构!
语法:
if (条件1) { if (条件1-1) { 代码块1-1 }else{ 代码块1-2 } }else{ if (条件2) { 代码块2 }else{ 代码块3 } }
上述代码:当条件1成立的时候,进入 { } 又遇到一个if-else结构,继续判断条件1-1,若成立则执行代码块1-1……
(3)switch语句
> java 1.7之后,switch语句可以判断字符串 switch(A),括号中A的取值可以是byte、short、int、char、String,还有枚举类型,
注意:long,float,double类型不能作为switch参数。
Case 后面不能是变量 float ,double,long
1.switch语句用法
int age = 5; switch (age) { case 4: break; case 5: break; default: break; }
2.switch语句与if语句的区别
-
if选择结构
基本if选择结构: 处理单一或组合条件的情况
If-else选择结构:处理简单的条件分支情况
多重if选择结构:处理复杂的条件分支情况
嵌套if选择结构:用于较为复杂的流程控制
-
switch选择结构
switch只能处理 多重分支并且条件判断是等值判断的情况
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构 。循环结构的三个要素:循环变量、循环体和循环终止条件。
问:使用代码计算100以内的偶数和;
循环语句有哪些
Java中有三种主要的循环结构:
while 循环
do…while 循环
-
for 循环
在Java5中引入了一种主要用于数组的增强型for循环。
for循环语句
虽然所有循环结构都可以用 while 或者 do...while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。
for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化语句;判断条件语句;控制条件语句) { //循环体语句; } for( int i = 0;i < 5 ;i++ ){ //循环体 } //for结束
执行流程:
执行初始化语句
执行判断条件语句,看其结果是true还是false:如果是false,循环结束;如果是true,继续执行。
执行循环体语句
执行控制条件语句
回到2继续
流程图:
代码举例:
-
从控制台输出100遍,“好好学习,天天向上!”
public class Test { public static void main(String[] args) { for (int i = 1; i <= 100; i++) { System.out.println("第"+i+"遍:好好学习,天天向上!"); } } }
-
求出1-100之和
/* 需求:求1-100之和。 */ public class Test { public static void main(String[] args) { // 保存1-100之和。 int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } System.out.println("1-100之和是:" + sum); } }
-
求5的阶乘
/* 需求:求5的阶乘。 什么是阶乘呢? n! = n*(n-1)! 规则 n! = n*(n-1)*(n-2)*...*3*2*1 */ class ForTest2 { public static void main(String[] args) { //定义最终结果变量 int jc = 1; //这里的x其实可以直接从2开始 //for(int x=1; x<=5; x++) for(int x=2; x<=5; x++) { jc *=x; } System.out.println("1-5的阶乘是:"+jc); } }