码迷,mamicode.com
首页 > 其他好文 > 详细

7、控制流程

时间:2015-12-05 17:51:02      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

7.1 块作用域

块:指由一对花括号括起来的若干简单的Java语句。

块确定了变量的作用域。

块分为:静态的和非静态的

执行的顺序为:

技术分享

一个块可以嵌套在另一个块中。但是不能在嵌套的两个块中声明同名的变量。在

示例:

步骤1:在Demo010项目中的com.zjk.type包内创建Block类

源码:

package com.zjk.type;

/**

*

*@类名 Block

*@日期 2015125日下午1:42:11

*@作者 zjkorder

*@版本 v1.0

*@描述????

* 块:的讲解

* main 方法所在类

*/

public class Block {

???? ?

????

????String name = "block!";//声明一个全局变量

???? ?

????

????/**

???? * 默认的构造方法

???? * @Title: Block

???? * @Description: TODO(这里用一句话描述这个方法的作用)

???? * @param 设定文件

???? * @return

???? * @throws

???? *

???? */

????public Block() {

????????// TODO Auto-generated constructor stub

????????System.out.println("构造方法内的语句!");

????}

????

????/**

???? * 第一个块

???? */

????{

????????String s = "我是第一个块的第一条输出语句!";//声明一个字符串变量s

????????System.out.println(s);

????????System.out.println(name);

????????/**

???????? * 第一个块作用域的内的一个块

???????? */

????????{

//????????????String s;// 错误:Duplicate local variable s 原因:在嵌套的两个或多个作用域内声明类同名的变量

????????????String ss ="我是第一块内嵌套的块";

????????????System.out.println(ss);

????????????

????????}

????????

????}

????

????/**

???? * 第二个块

???? */

????{

????????System.out.println("第二块内的输出语句!");

????}

????

????/**

???? * 第一个静态块

???? */

????static{

????????System.out.println("第一个静态块的输出语句!");

????????

????}

???? ?

????

????public static void main(String[] args) {

????????new Block();

????}

?

}

?

?

?

7.2条件语句

条件语句的格式为:if(condition){block statement}

当condition为真是执行block statement

执行顺序:

技术分享

?

if(condition){block statement 1}else{block statement 2}

当condition 为真时执行block statement 1 ,为假时执行 block statement 2

执行顺序:

技术分享

if(condition 1){block statement 1}else if(condition 2){block statement 2}

当condition 1 为真时执行block statement 1 ,condition 1为假且condition 2 为真时执行 block statement 2

执行顺序:

技术分享

?

示例:

步骤1:在Demo010项目中的com.zjk.type包内创建ConditionalStatement类

源码:

package com.zjk.type;

/**

*

*@类名 ConditionalStatement

*@日期 2015125日下午2:54:53

*@作者 zjkorder

*@版本 v1.0

*@描述????

*

* 条件控制语句

* if

* main方法所在类

*/

public class ConditionalStatement {

????

????/**

???? * main方法

???? * @Title: main

???? * @Description: TODO(这里用一句话描述这个方法的作用)

???? * @param @param args 设定文件

???? * @return void

???? * @throws

???? *

???? */

????public static void main(String[] args) {

????????

????????int a = 10; //声明int型变量a 并赋值 10

????????

????????int b = 9; //声明int型变量b 并赋值 9

????????

????????int c = 11; //声明int型变量c 并赋值 11

????????

????????int max = a; // 声明int型变量来保存最大值

???????? ?

????????

????????if(a>b){// if(condition){ block statement} 结构的控制语句

????????????System.out.println("a大于b");

????????}

????????

????????System.out.print("ac的大小比较结果为:");

????????if(a > c){ //if(condition ){ block statment 1}else{ block statement 2} 结构的控制语句

????????????System.out.println("大于");

????????}else{

????????????System.out.println("小于");

????????}

???????? ?

????????

????????if(max < b){//if(condition 1){ block statment 1}else if(condition 2){ block statement 2} 结构的控制语句

????????????max = b;

????????}else if(max < c){

????????????max = c;

????????}

????????System.out.print("abc三个数的最大值是:"+max);

????????

????}

?

}

?

7.3 循环语句

?

7.3.1 while与do-while循环

While循环常用的格式为: while(condition){block statement}

当condition为真是循环执行block statement,当condition为假时跳出循环。

执行顺序为:

技术分享

do-while循环常用的格式为:do{block statement}while(condition)

先执行block statement ,当condition为真时循环执行block statement语句,为假时跳出循环

执行顺序为:

?

技术分享

while与do-while的区别:

while循环是先判断条件是否成立再执行循环语句

do-while循环是先执行一次循环语句再判断条件是否成立

示例:

步骤1:在Demo010项目中的com.zjk.type包内创建WhileCyale类

源码:

package com.zjk.type;

/**

*

*@类名 WhileCyale

*@日期 2015125日下午3:21:35

*@作者 zjkorder

*@版本 v1.0

*@描述????

*

* while与都while循环

*

* main方法所在类

*/

public class WhileCyale {

?

????/**

???? * main方法

???? * @Title: main

???? * @Description: TODO(这里用一句话描述这个方法的作用)

???? * @param @param args 设定文件

???? * @return void

???? * @throws

???? *

???? */

????public static void main(String[] args) {

????????int a = 1;//声明一个int型变量保存遍数

????????

????????while(a < 10){

????????????System.out.println("这是一个while循环:");

????????????a++;

????????}

???????? ?

????????

????????do{

????????????System.out.println("这是一个do-while循环:");

????????????a--;

????????}while(a>1);

????}

???? ?

???? ?

????

}

?

?

7.3.2 for与for-each循环

for( statement 1 ; condition; statement 2 ){ block statement}

statement1 与statement2 是两条语句,在执行for循环时statement1第一的执行,在判断condition是否成立,然后是block statement ,statement每次循环最后执行

执行顺序为:

技术分享

for-each循环:更加简洁的用于数组和容器。

?

示例:

步骤1:在Demo010项目中的com.zjk.type包内创建ForCyale类

源码:

package com.zjk.type;

/**

*

*@类名 ForCyale

*@日期 2015125日下午3:42:59

*@作者 zjkorder

*@版本 v1.0

*@描述????

* forfor-each循环

* main方法所在类

*/

public class ForCyale {

?

????/**

???? * main 方法

???? * @Title: main

???? * @Description: TODO(这里用一句话描述这个方法的作用)

???? * @param @param args 设定文件

???? * @return void

???? * @throws

???? *

???? */

????public static void main(String[] args) {

????????

????????// 利用for循环输出1~10之间的整数

????????for (int i = 1; i <= 10; i++) {

????????????System.out.println(i);

????????}

????????

????????int[] a = {1,2,3,4,5};// 创建一个int型数组变量保存1~5之间的整数

????????System.out.println("数组a的内容为:");

????????//利用for-each循环输出a数组

????????for (int i : a) {

????????????System.out.println(i);

????????}

???????? ?

????????

????????

????}

}

?

?

7.4 switch语句

?

switch的结构为:

switch(choice){

case variable1:

block statement;

break;

case variable2:

block statement;

break;

case variable3:

block statement;

break;

.

.

.

default:

block statement default;

break;

}

?

Switch 语句将从与选项值相匹配的case标签处开始执行直达遇到break语句,或者执行到switch语句结束处为止。如果没有相匹配的case标签,而有default字句,就执行default字句。

执行顺序为:

技术分享

?

示例:

步骤1:在Demo010项目中的com.zjk.type包内创建ForCyale类

源码:

package com.zjk.type;

/**

*

*@类名 MultipleChoice

*@日期 2015125日下午3:49:06

*@作者 zjkorder

*@版本 v1.0

*@描述????

*

* 多重选择switch

* main 方法所在类

*

*/

public class MultipleChoice {

???? ?

????

????/**

???? * main 方法

???? * @Title: main

???? * @Description: TODO(这里用一句话描述这个方法的作用)

???? * @param @param args 设定文件

???? * @return void

???? * @throws

???? *

???? */

????public static void main(String[] args) {

???????? ?

????????

????????int a = 6;

????????

????????switch (a) {

????????case 1: //a1

????????????System.out.println("这次你选择的是1");

????????????break;//跳出多重选择

//????????case 1: //错误:Duplicate case 原因:多重选择中已经存在相同的案例

????????case 2:

????????????System.out.println("这次你选择的是2");

????????????break;

????????case 3:

????????????System.out.println("这次你选择的是3");

????????????break;

????????case 4://从与选项值相同的case值开始执行直至遇到break语句才会,或者执行到switch语句的结束处

????????????System.out.println("这次你选择的是4");

????????case 5:

????????????System.out.println("这次你选择的是5");

????????????break;

????????case 6: //从与选项值相同的case值开始执行直至遇到break语句才会,或者执行到switch语句的结束处

????????????System.out.println("这次你选择的是6");

????????default://如果没有匹配的case标签,而有default字句,就执行这个字句

????????????System.out.println("不存在你的选项!");

????????}

????????

????????

????}

?

}

?

?

?

7.5 break和continue

?

break: 直接跳出循环。适用:循环语句和switch语句。

continue:跳出当前循环。适用:循环语句。

示例:

步骤1:在Demo010项目中的com.zjk.type包内创建ForCyale类

源码:

package com.zjk.type;

/**

*

*@类名 InterruptControl

*@日期 2015125日下午4:14:13

*@作者 zjkorder

*@版本 v1.0

*@描述????

* 中断流程控制 break continue

* main方法所在类

*/

public class InterruptControl {

?

????

????/**

???? * main 方法

???? * @Title: main

???? * @Description: TODO(这里用一句话描述这个方法的作用)

???? * @param @param args 设定文件

???? * @return void

???? * @throws

???? *

???? */

????public static void main(String[] args) {

????????

????????System.out.println("1~10之间的奇数为:");

????????for (int i = 1; i < 10; i++) { // 利用for循环输出 1~10 之间的奇数

????????????if(i%2 == 0){

????????????????continue;//只是跳出当前循环

????????????}

????????????System.out.println(i);

????????}

????????

????????System.out.println("1~10之间的偶数为:");

????????int n = 0;

????????while(n>=0){ // 利用while循环输出1~10 之间的偶数

????????????n++;

????????????if(n%2 != 0){

????????????????continue;//跳出当前循环

????????????}

????????????System.out.println(n);

????????????if(n >= 10){

????????????????break;// 跳出循环

????????????}

????????????

????????}

????????

????}

}

?

?

?

7、控制流程

标签:

原文地址:http://www.cnblogs.com/zjkorder/p/5021893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!