java while for break,Java流程控制之 while循环 for循环 break continue

本文详细介绍了Java中的三种循环结构:while、do...while和for循环,包括它们的基本语法、特点和应用场景。强调了避免无限循环的重要性,并通过实例展示了如何使用这些循环结构。此外,还提到了break和continue语句在循环控制中的作用,以及增强for循环在处理数组和集合时的便利性。

循环结构

while循环

while是最基本的循环,它的结构为:

while(布尔表达式){

//循环内容

}

只要布尔表达式为true,循环就会一直执行下去

我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。

少部分情况需要循环一直执行,比如服务器的请求响应监听等。

循环条件一直为true就好造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死崩溃!

public class WhileDemo02 {

public static void main(String[] args) {

//计算1+2+3+···+100=?

int sum = 0;

int i = 0;

while (i <= 100) {

sum = sum + i;

i++;

}

System.out.println(sum);

}

}

输出:5050

do...while循环

对于while语句而言,如果不满足天配件,则不能进入循环。但有时候我们需要即使不满足条件也要执行一次。

do...while循环和while循环向此,不同的是,do..while循环执行也会执行一次。

do{

//代码语句

}while(布尔表达式)

while和do...while的区别:

while先判断后执行;do...while则是先执行再判断。

Do...while总是保证循环体至少会被执行一次!这是它们的区别。

public class DowhileDemo01 {

public static void main(String[] args) {

int sum = 0;

int i = 0;

do {

sum = sum + i;

i++;

}

while (i <= 100);

System.out.println(sum);

}

}

输出:5050

public class DowhileDemo02 {

public static void main(String[] args) {

int a = 0;

while (a < 0){

System.out.println(a);

a++;

}

System.out.println("=======");

do{

System.out.println(a);

a++;

}while(a<0);

}

}

输出:

=======

0

For循环

虽然循环结构分为while或者do...while表示,但Java提供了另一种语句——for循环,使一些循环结构变得更加简单。

for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。

for循环的次数是再执行前就确定的。语法格式如下:

for(初始化;布尔表达式;更新){

//代码结构

}

public class ForDemo01 {

public static void main(String[] args) {

//先来复习一下while语句:

int a=1;//初始化条件

while (a<=5){//条件判断

System.out.println(a);//循环体

a+=2;//迭代

}

System.out.println("while循环结束!");

//(初始化值;条件判断;迭代)

for (int i=1;i<=5;i++){

System.out.println(i);

}

System.out.println("for循环结束!");

}

}

输出:

1

3

5

while循环结束!

1

2

3

4

5

for循环结束!

关于for循环有以下几点说明:

最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。

for (; i < 100; i++) { } 然后检测布尔表达式的值,如果为true,循环体被执行,如果为false,循环体终止,开始执行循环体后面的语句。再次检测布尔表达式。循环执行上述过程

【小技巧】:使用IDEA快速生成for循环。

?比如要100的for循环只需要输入100.for,按下Enter就可以自动生成

小练习:

//练习1:计算0~100之间的奇数和 和 偶数和

public class ForDemo02 {

public static void main(String[] args) {

int oddSum = 0;

int evenSum = 0;

for (int i = 0; i <= 100; i++) {

if (i % 2 != 0) {

oddSum += i; //oddSum=oddSum+i;

} else {

evenSum += i;

}

}

System.out.println("奇数和为:" + oddSum);

System.out.println("偶数和为:" + evenSum);

}

}

//练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出三个。

public class ForDemo03 {

public static void main(String[] args) {

for (int i = 1; i <= 1000; i++) {

if(i % 5 == 0){

System.out.print(i+"\t");

}

if(i%(5*3)==0){//每行

System.out.println(); // println输出完不换行

//System.out.print("\n"); print输出完不换行

}

}

}

}

练习3:打印99乘法表

/*

1*1=1

2*1=22*2=4

3*1=33*2=63*3=9

4*1=44*2=84*3=124*4=16

5*1=55*2=105*3=155*4=205*5=25

6*1=66*2=126*3=186*4=246*5=306*6=36

7*1=77*2=147*3=217*4=287*5=357*6=427*7=49

8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64

9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81

*/

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 (int i = 1; i <= 9; i++),并输出System.out.print(1+"*"+i+"="+(1*i) + );

我们把固定值1再用一个循环包起来,在原先的循环外加上for (int j = 1; j <= 9; j++) {},这时候会有重复项。

我们再把内层循环的i <= 9,改成i <= j,这样其实已经把99乘法表输出了。

样式调整,输出后加个空格System.out.print(j+"*"+i+"="+(j*i) + "\t");并在结束循环后换行。

练习4:

public class TestDemo01 {

//打印三角形

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();

}

}

}

打印结果:

*

***

*****

*******

增强for循环

之后的数组会重点使用,先来打个照面。

Java5引入了一种主要用于数组或者集合的增强for循环。

Java增强for循环语法格式如下:

for(声明语句:表达式){

//代码句子

}

声明语句:其声明的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时的数组元素的值相等。

表达式:表达式是访问的数组名,或者是返回为数组的方法。

public class ForDeme05 {

public static void main(String[] args) {

int[] number={10,20,30,40,50};

for (int i=0;i<5;i++){

System.out.println(number[i]);

}

System.out.println("=========");

//遍历数组元素

for (int x:number){

System.out.println(x);

}

}

}

break continue

break在任何循环语句的主体部分,均可用break控制循环流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也可以用在switch语句中)

public class BreakDemo {

public static void main(String[] args) {

int i =0;

while (i<10){

i++;

System.out.println(i);

if (i==3){

break; //break用在循环语句用于跳出循环,并不是终止程序

}

}

System.out.println(99);

}

}

输出:

1

2

3

99

continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否循环的判定。

public class ContinueDemo {

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 没有goto。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子--- 带标签的break和continue.

“标签”是指后面跟一-个冒号的标识符,例如: label:

对Java来说唯一用到标签的地方是在循环语句之前。 而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。

public class LabelDemo {

public static void main(String[] args) {

int count=0;

outer:for (int i = 101; i < 150; i++) {

for(int j=2;j

if (i%j==0){

continue outer;

}

}

System.out.print(i+" ");

}

}

}

//不建议使用

原文:https://www.cnblogs.com/fxliyh/p/14493229.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值