`
danielhjd
  • 浏览: 242873 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Idiot's Note Five: 代标号的continue和break,以及java中赋值的深入理解

    博客分类:
  • Java
 
阅读更多

语法:

 

continue 标号名

break  标号名

 

作用:

 

continue 标号名 : continue 后的标号名 应该标识 在外层循环语句 ,其作用是使 程序的流程 转入标识的循环层次,继续执行

 

break 标号名 :  break 跳出 这个标识的语块,执行该语句的后续语句

 

代码:

public class ContinueWithLableExample {
	public static void main(String[] args) {
		String searchMe="Look for a substring in me";
		String substring="for";
		boolean foundIt=false;
		int max=searchMe.length()-substring.length();
		System.out.println(searchMe.length());
		test:
			for(int i=0;i<=max;i++){
				int n =substring.length();
				System.out.println(n);
				int j=i;
				int k=0;
				System.out.println(k);
				while(n-- !=0){
					if(searchMe.charAt(j++)!=substring.charAt(k++)){
						System.out.println("j= "+j);
						System.out.println("k= "+k);
						continue test;
					}
				}
				foundIt=true;
				break test;
			}
		System.out.println(foundIt?"FoudIt":"Didn't find it");
	}

}

  

输出结果:

 

26
3
0
j= 1
k= 1
3
0
j= 2
k= 1
3
0
j= 3
k= 1
3
0
j= 4
k= 1
3
0
j= 5
k= 1
3
0
FoudIt

  

分析这串代码的运行轨迹:

1:代码都是顺序执行;

2:此处是双层循环,有嵌套的continue 和break语句;

 

 

while(n-- !=0){
					if(searchMe.charAt(j++)!=substring.charAt(k++)){
						System.out.println("j= "+j);
						System.out.println("k= "+k);
						continue test;
					}
				}

  

当if

if(searchMe.charAt(j++)!=substring.charAt(k++)){
						System.out.println("j= "+j);
						System.out.println("k= "+k);
						continue test;
					}

 

 

当if中的条件为真  则 continue test,一次一次的跳出

|

.

.

.

循环

.

.

.

|

当循环到 第 六 次;

即:int j=5

      n=3  

      j++ 为6

      k++ 为1

此时if中的条件为false; 就会运行while(n-- !=0){}的循环

      n=2;

      j++ 为7;

      k++为2

此时if中条件为false;任然运行while(n-- !=0){}的循环

      n=1;

      j++ 为8;

      k++为3;

此时if中条件为false,运行while(n-- !=0){}此时n=0 跳出while循环执行

foundIt=true;

break test;

跳出test了

 

此时 foundIt = true.

 

分析:

n循环的次数substring的length(),这样就判定了 substring 是否与string中的匹配;

另外 在同一个循环中 变量是不断的赋值和赋值,j and k 是一个局部变量

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics