Day08
for循环
再Java5中引入了一种主要用于数组的增强型for循环 for循环语句 是支持迭代的一种通用结构,是最有效的,最灵活的循环结构哦
for(初始化; 布尔表达式; 更新;){
//代码语句
}
快捷方法:
//100.for加回车就可以弹出for循环
语法详解如下:
package com.struct;
public class ForDemo01 {
public static void main(String[] args) {
int a=1; //初始化条件
while (a<=100){ //条件判断
System.out.println(a); //循环体
a+=2; //迭代(每一次循环会刷新a的值)
}
System.out.println("while循环结束 ");
//================================================
for (int i=1; i<=100; i++){
System.out.println(i);
}
System.out.println("for循环结束");
}
/*
关于for循环 有以下几点说明:
最先执行初始化步骤,可以声明一种类型,但可以初始化一个或者多个控制变量,也可以是空语句
然后检测布尔表达式的值,如果为true,则 循环体就会被执行,
如果为false,循环就会终止,开始执行 循环体后面的语句
执行一次循环之后 ,更新迭代控制变量(迭代因子控制循环变量的增减)
再次检测布尔表达式,循环执行上面的过程
for(;;){} //死循环
*/
}
计算 0到100之间所有奇数和偶数 的和:
package com.struct;
public class ForDemo02 {
//练习:0到100之间奇数和偶数的和
public static void main(String[] args) {
int oddSum=0;
int evenSum=0;
for (int i = 0; i<=100;i++){
if (i%2!=0){
oddSum=oddSum+i; //oddSum+=i;
}else {
evenSum=evenSum+i; //evenSum+=i;
}
}
System.out.println("奇数的和:"+oddSum);
System.out.println("偶数的和: "+evenSum);
}
}
注意:oddSum=oddSum+i; //oddSum+=i; println:输出之后换行 print:输出 之后不换行
练习2:用 whil或for循环输出1到1000之前可以 被5整除 的数 ,并且 每行输出三个
package com.struct;
public class ForDemo03 {
//练习2:用 while或for循环输出1到1000之前可以 被5整除 的数 ,并且 每行输出三个
//再次用for循环,
public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
if (i%5==0){
System.out.print(i+"\t");
}
if (i%(5*3)==0){
System.out.println();//空串表示换行
//System.out.println("\n");//再次也表示换行
}
}
}
}
练习:打印九九乘法表
步骤: 1.先打印第一列 2.我们把固定的i再用一个循环给包起来 3.去掉重复项:i<=j 4.调整样式
(一个大问题拆分成数个小问题)
package com.struct;
public class ForDemo04 {
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <=j; i++) {
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
}
}
增强for循环(数组的时候深入了解) Java5引入的一种主要用于数组或集合的增强型for循环 Java增强for循环语法格式如下:
for(声明语句:表达式)
{
//代码句子
}
声明语句:声明新的局部变量,该变量的 类型 必须和 数组元素的类型匹配,其作用域限定在循环语句 块,其值与此事 数组元素的值 相等
表达式 :表达式是要访问 的数组名,或者返回值为数组的方法
package com.struct;
public class ForDemo05 {
public static void main(String[] args) {
//[]表示一个数组
int[] numbers = {10, 20, 30, 40, 50,}; //定义一个数组
for (int i=0;i<=5;i++){
System.out.println(numbers[i]);
}//提取数组中 的数字1,2,3,,4,5
System.out.println("===============================");
//遍历数组的元素
for (int x:numbers) {
System.out.println(x);
}
}
}
break和contiue
break在任何循环语句的 主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中的剩余的语句 终止循环,即直接退出循环

continue语句用在循环语句,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着 进行下一次是的执行循环的判断定 (即当满足条件是,跳过该次循环)

关于goto关键字
goto关键字很在就在设计语言中出现没尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto,然而,再break和continue这两个关键字上,我们可以看出一些goto的影子,带标签的break和continue 标签:是指后面跟一个冒号的标识符,李儒:label: 对Java来说唯一用到标签的地方实在循环语句之前,而在循环值钱设置 标签的唯一理由是:我们希望在其中 嵌套另一个循环,由于break和 continur关键字通常只中断当前循环,但若随便签使用,他们 就会中断 存在标签的的地方
标签使用如下:
package com.struct;
public class LabelDemo {
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.struct;
public class TextDemo {
//打印五行三角形
public static void main(String[] args) {
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();
}
}
}
浙公网安备 33010602011771号