增强for循环
- 在数组部分重点使用
- Java5引入了一种主要用于数组或集合的增强型for循环
- Java增强for循环格式如下
for(声明语句 : 表达式)
{
//代码句子
}
- 声明语句: 声明新的局部变量, 该变量的类型必须和数组元素的类型匹配. 其作用域限定在循环语句块 其值与此时数组元素的值相等
- 表达式 : 表达式是要访问的数组名, 或者是返回值为数组的方法.
break continue
- break 在任何循环语句的主体部分, 均可用break控制循环的流程. break用于强行退出循环, 不执行循环中剩余的语句.(break 语句可在swith语句使用)
package com.ntru.demo.test.struct;
public class Demo17 {
public static void main(String[] args) {
int i = 0;
while(i<100){
i++;
System.out.println(i);
if(i==30){
break;//挑出循环, 会继续向下执行, 循环语句不在执行
}
}
System.out.println("123");
}
}
- continue 语句在用于循环语句体中, 用于终止某次循环过程, 即跳过循环体中尚未执行的语句 接着进行下一次是否执行循环的判定
package com.ntru.demo.test.struct;
public class Demo18 {
public static void main(String[] args) {
int i = 0;
while (i<100){
i++;
if (i%10==0){
System.out.println();
continue;//不满足条件则挑出, 会继续执行为执行语句
}
System.out.print(i+" ");
}
}
}
- 关于goto关键字
- goto关键字很早就在程序设计语言中出现, 尽管goto仍是java的一个保留字, 但并未在语言中得到正式使用, java没有go to, 然而 在break和continue这两个关键字的身上, 我们仍然能看出一些goto的影子 带标签的break和continue
- "标签"是指后面跟一个冒号的标识符, 例如: label
- 对java来说唯一用到标签的地方是在循环语句之前, 而在循环之前设置标签的唯一理由: 希望在其中嵌套另一个循环, 由于break和continue关键字通常只中断当前循环, 但若随同标签使用, 他们就会中断标签的地方.
package com.ntru.demo.test.struct;
public class Demo19 {
public static void main(String[] args) {
//打印101-150之间所有质数
int count =0;
//不建议使用
outer:for (int i = 101; i < 150; i++) {
for (int j = 2; j < i/2; j++) {
if (i%j ==0){
continue outer;
}
}
System.out.print(i+" ");
}
}
}
打印三角形
package com.ntru.demo.test.struct;
public class Demo20 {
public static void main(String[] args) {
//打印三角形 5行
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i ; j--) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}