欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaSE-循环语句

程序员文章站 2022-07-14 23:49:38
...

循环的基本结构:循环条件初始化,循环体,循环条件修改,循环条件判定。包括单层循环和多层循环。
循环的嵌套是循环可以进行多层嵌套,也可以循环内嵌套多个循环。

3.2.1 While语句

while语法结构为:
while(条件表达式){
执行语句块
}
条件表达式符合条件,循环继续执行;否则,循环退出。其中,执行语句块是循环中被重复执行的部分。

例1:计算:0+1+2+…+100

Ans:
int i=0,sum=0;
while(i<=100){//;主要注意防止出现死循环
	sum+=i++;//优化代码
	//i++;
}
System.out.println("0+1+..+100="+sum);

例2:计算从1到100的所有奇数相加(提示利用while语句)
Ans:
int i=0,t=0;
//因为i=i+2,所以i要小于<98,如果i<100,会多加101的值;其中小于98不包括98
while(i<98){
i+=2;
t+=i;
}
System.out.println(t);

3.2.2	do...while语句

do…while语法结构为:
do{
执行语句块
}while(条件表达式);
注意:do…while的表达式后要有分号。

例:计算:0+1+2+…+100

int i=0,sum=0;
do{
	sum+=i++;
}while(i<=100);
System.out.print(sum);

do…while和while循环的区别:
a. do while循环必定执行一次循环体;while循环可能不执行.
b. do while语句必须以分号结尾,while循环可以没有分号.

3.2.3 for语句

for语法结构为:
for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句块
}

例1:计算:0+1+2+…+100
Ans:

int sum=0,i=0;
//把循环初始化代码写在循环里面,局部变量只在循环内部有效
//理解局部变量的作用域(范围)
/*for(int i=0;i<=100;i++){
	sum+=i;
}*/
//把循环初始化代码写在循环外面,i作用范围大于放在循环内部的i
for(;i<=100;i++){
	sum+=i;
}
System.out.println("1+3+..+100="+sum);

例2:随机产生一个10以内的正整数,用户循环输入三个整数,如果用户
输入的整数包含随机数,输出“猜对了”;反之,输出“没猜到”。例如:
随机数为4,用户输入数为:2,3,4。输出:猜对了;随机数为4,用户输入数为:1,2,3。输出:没猜到。
Ans:

Random cs = new Random();
int i=cs.nextInt(10);
System.out.print(i);
int a,b,c;
System.out.print("请输入三个0-9的数字:");
Scanner cc = new Scanner(System.in);
a=cc.nextInt();
b=cc.nextInt();
c=cc.nextInt();
if(a==i || b==i || c==i){
	System.out.println("猜对了");
}
else{
	System.out.println("没猜到");
}

while和for循环的异同:

a. 都是循环结构,都需要编写和执行循环的4个基本结构:循环初始化,循环体,循环条件修改,循环条件判定;
b. do while 循环一定会执行一次循环体,while循环和for循环可能不执行循环体;
c. 一般的while循环或do while循环用于循环次数不确定的情况,for循环常用于循环次数确定的情况。

3.2.4 foreach语句
for each循环遍历,常用于数值或集合的遍历。
例:

for(String d:score3){
	System.out.print(d+"\t");
}

3.3 流程控制进阶

在Java中,流程控制语句可以嵌套使用:嵌套循环语句,嵌套条件语句,循环、条件语句嵌套使用。
靠自身控制无法终止的程序称为“死循环”,可以通过break,continue和return函数提前中断循环。
 break
break语句用于终止某个语句块的执行,用在循环语句体中,强行退出循环。主要情况有:
a. 在switch分支中跳出分支结构
b. 在循环结构中跳出当前循环
c. 在循环嵌套中跳出label指定的循环,但需要在循环语句前面指定label标签
例:

outer:for(int i=0;i<10;i++){
			//在循环体内部可以编写循环,这是循环嵌套
			middle:for(int k=0;k<10;k++){
				System.out.print(i+","+k);
				while(true){
					System.out.println("while 嵌套循环");
					//break;//break默认会跳出当前循环
					break middle;//在循环嵌套中,break可以跳出label标签指定的循环层次中,在jdk1.7版本后支持,与c语言的goto类似。
				}
			}
}

 continue
continue语句用在循环语句体中,用于终止循环过程,跳出循环体中continue语句下未执行的循环体,开始下一次循环过程。也可以在循环嵌套中,终止本次循环体的执行跳转到label指定的循环中,继续执行。continue语句:只能出现在循环语句while、do…while、for中。
例:

int flag = 1;
	outer:while(flag++<10){
		for(int i=flag;i>0;i--){
			System.out.print("*");
			continue outer;//continue可以在循环嵌套中,用于终止当前循环,跳转到外部循环中
		}
		System.out.println();
	}

 return
可以在方法内部,终止本方法的执行。也可以在方法内部返回数据值给方法的调用者。
例:

int l=0;
		do{
			if(l++%2==0){
				System.out.println(l+"do while循环嵌套,奇数");
				continue;//continue可以在循环内部终止本次循环,执行下一次循环;结束循环体执行,跳转循环条件修改或循环条件判定的语句中
			}else{
				System.out.println(l+"do while循环嵌套,偶数");
			}
			if(l==10){
				System.out.print(l+"\t");
				return;//return可以在方法内部终止方法的执行
			}
		}while(true);