一.for循环控制
·基本语法
for(循环变量初始化;循环条件;循环变量迭代){
循环操作(可以多条语句);
}
说明:
1.for关键字,表示循环控制
2.for有四要素:(1)循环变量初始化(2)循环条件(3)循环操作(4)循环变量迭代
3.循环操作,这里可以有多条语句,也就是我们要循环执行的代码
4.如果 循环操作(语句)只有一条语句,可以省略{},建议不要省略
·流程图
注意事项和说明:
1)循环条件是返回一个布尔值的表达式
2)for(;循环判断条件;)中的初始化和变量迭代可以写到其他地方,当时两边的分号不能省略
3)循环初始量可以有多余初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。
package chap6;
public class ForDetail {
public static void main(String[] args) {
int count = 3;
for(int i =0,j = 0;i<count;i++,j+=2) {
System.out.println("i=" + i + "j=" + j);
}
}
}
package chapter02;
public class ForDetail {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=100;i++) {
sum+=i;
}
System.out.println("1~100的整数和:"+sum);
}
}
编程思想:
1.化繁为简:将复杂的需求拆解成简单的需求,逐步完成
2.先死后活:先考虑固定的值,然后转成可以灵活变化的值
package chapter02;
public class ForExercise {
public static void main(String[] args) {
int count=0;
int sum=0;
for(int i=1;i<=100;i++) {
if(i % 9==0) {
count++;
sum+=i;
}
}
System.out.println("count="+count);
System.out.print("sum="+sum);
}
}
二.while循环
·基本语法:
循环变量初始化;
while(循环条件){
循环体(语句);
循环变量迭代;
}
·说明
1)while循环也有四要素
2)只是四要素放的位置,不一样
·流程图
·注意事项和细节说明
1.循环条件是返回一个布尔值的表达式
2.while循环是先判断再执行语句
package chapter02;
public class WhileCycle01 {
public static void main(String[] args) {
int sum = 1;
int n = 3;
int endNum = 100;
while (sum <= endNum) {
if (sum % n == 0) {
System.out.println(sum);
}
sum++;
}
}
}
三.do-while循环
·基本语法
循环变量初始化;
do{
循环体(语句);
循环变量迭代;
}while(循环条件);
·说明:
1.do while是关键字
2.也有循环四要素,只是位置不一样
3.先执行,再判断,也就是说,一定会至少执行一次
3.最后 有一个分号;
·流程图
先执行,再判断,一定会执行一次
返回值是布尔值
package chapter02;
public class DoWhileExercise01 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
int j = 1;
do {
if (i % 5 == 0 && i % 3 != 0) {
System.out.println(i);
sum++;
}
i++;
} while (i <= 200);
System.out.println(sum);
}
}
package chapter02;
import java.util.*;
public class DoWhileExercise02 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
char answer= ' ';
do {
System.out.println("老韩使出五连鞭");
System.out.println("老韩问:还钱吗?y/n");
answer = in.next().charAt(0);
System.out.println("他的回答是"+answer);
}while(answer!='y');
}
}
四.多重循环控制
·将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while,do...while均可以作为外层循环和内层循环。【一般建议使用两层,最多不要超过三层,否则,代码的可读性差】
·实质上。嵌套循环就是把内存循环当成外层循环的循环体
·设外层循环次数为m次,内层循环为n次,则内层循环体实际上需要执行m*n次
package chap6;
import java.util.*;
public class Stars {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入层数:");
int totalLevel = in.nextInt();//层数
for(int i=1;i<=totalLevel;i++) {
for(int k=1;k<=totalLevel-i;k++) {
System.out.print(" ");
}
//控制打印每层的*个数
for(int j=1;j<=2*i-1;j++) {
//当前行的第一个位置是*,最后一个位置也是*,最后一层全部 *
if(j==1 || j==2*i-1 || i ==totalLevel) {
System.out.print("*");
}else {//其他情况输出空格
System.out.print(" ");
}
}
//每打印完一层的*后,就换行 println 本身会换行
System.out.println("");
}
}
}
package mypackage;
public class MultiFor {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i =0;i<2;i++) {
for(int j =0;j<3;j++) {
System.out.println("i="+i+"\t"+"j="+j);
}
}
}
}
package mypackage;
public class AlphaDemo {
public static void main(String[] args) {
for(int row=0;row<=6;row++) {
System.out.println();
for(int alpha='A'+row;alpha<='F';alpha++) {
System.out.format("%c",alpha);
}
}
}
}
五.跳转控制语句-break
·基本介绍:
break语句用于终止某个语句块的执行,一般使用在switch或者循环[for,while,do-while]中
·基本语法:
{·······
break;
········
}
示意图
package chap6;
public class Break01 {
public static void main(String[] args) {
for(int i =0;i<10;i++) {
if(i==3) {break;}
System.out.println("i="+i);
}
System.out.println("for循环结束");
}
}
·注意事项和细节说明:
1.break语句出现在多层嵌套的语句块中,可以通过标签指明要终止的是哪一层语句块
标签的基本使用
label1:{ ........
label2: {.......
label3: { .........
break label2;
.......
}
}
}
解读:
(1)break语句可以指定退出哪层
(2)label1 是标签,名字由程序员指定
(3)break后指定到哪个label就退出到哪里
(4)在实际的开发中,尽量不要使用标签.
(5)如果没有指定break,默认退出最近的循环体
package chap6;
import java.util.*;
public class BreakExercise02 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String name="";
String pwd="";
int chance=3;
for(int i =1;i<4;i++) {
System.out.println("请输入用户名");
name=in.next();
System.out.println("请输入密码");
pwd=in.next();
if("丁真".equals(name) && "666".equals(pwd)) {//建议使用"字符串".equals(变量名)d的方式,防止出现空指针的情况
System.out.println("登录成功");
break;
}
chance--;
System.out.println("还剩余"+chance+"次机会");
}
}
}
六.跳转控制语句-continue
·基本介绍:
1)continue语句用于结束本次循环,继续执行下一次循环.
2)continue语句出现在多层嵌套的循环语句体中,可以通过标签指明要跳过的是哪一层循环,这个和前面的标签的使用的规则一样
·基本语法:
{ ........
continue;
.........
}
示意图
package chap6;
public class Continue01 {
public static void main(String[] args) {
int i = 1;
while(i <=4) {
i++;
if (i== 2 ) {
continue;
}
System.out.println(i);
}
}
}
七、跳转控制语句-break
·介绍
return使用在方法,表示跳出所在的方法,在讲解方法的时候,会详细的介绍。注意:如果return写在main方法,退出程序
package chap6;
public class Return01 {
public static void main(String[] args) {
for(int i=1;i<=5;i++) {
if(i==3) {
System.out.println("我爱你"+i);
return;
}
System.out.println("Hello World!");
}
System.out.println("go on..");
}
}