Java while,do..while,for循环及foreach语句

while循环语句

while语句是Java最基本的循环语句,是一种先判断在执行的循环语句,在一定条件下执行while语句的代码块,如果while语句里的条件为真,则执行代码块里的语句,也可以执行多个,如果为假,则直接跳出循环体

while语法结构

while(条件表达式){
    语句块;
    }

其中语句块可以是一条或多条语句,条件表达式是一个Boolean表达式,他决定是否执行。执行一次之后是否还满足条件表达式,满足那就在执行,一直到条件表达式不满足时就跳出循环。

例1
编写一个Java程序,循环输出5个hello world!

public class dome2{
	public static void main(String[] args) {
		int a=0;
	   while(a<5) {
		   System.out.println("hello world");
		   a++;
	   }
	}
}

答案
hello world!
hello world!
hello world!
hello world!
hello world!

while语句嵌套
在一些复杂的程序中,while可以嵌套书写,例如输出一个正方形。

public class dome2{
	public static void main(String[] args) {
		int a=0;
		int b=0;
	   while(a<5) {
		 while(b<5) {
			 System.out.print("*");
			 b++;
		 }
		 b=0;
		 a++;
		 System.out.println();
	   }
	}
}

答案
*****
*****
*****
*****
*****

print与println区别在于print输出完之后不换行,下一个输出紧接着后面,而println输出完之后直接换行,下一个输出就另起一行,也可以用print("\n")来表示换行,\n代表转义字符换行符。

do…while循环语句

在上述的while循环语句中,它首先判别表达式的真假,是否执行里面的语句块,do…while语句也是要判别条件的真假,两者最大的区别是do…while先执行代码块,后判别条件的真假,即使在条件第一次就为假时,do…while至少也要执行一次, do…while也可以实现嵌套循环。

do…while语法结构

do{
   语句块;
  }while(条件表达式);

例2
编写Java程序输出10的阶乘。结果是3628800

public class dome2{
	public static void main(String[] args) {
		int a=0;
		int sum=1;
	  do {
		  a++;
		  sum*=a;
	  }while(a<10);
	  System.out.println(sum);
	}
}

for循环语句

  • for循环语句是使用最广泛,功能最强的一种,for还可以代替while,do…while循环语句。
  • for循环中有三个表达式,赋值语句,条件判断语句,迭代语句。
  • for循环过程:首先表达式1进行赋值初始化,第二步表达式2条件判断,如果为true,则执行循环体语句,为false则直接跳出循环,在执行表达式3,改变循环变量的值,第一次循环完成,第二次循环不用在表达式1里面赋值了,直接在表达式2里进行判断,以此循环。
  • for循环语句里面的三个表达式要用分号 隔开。
  • for循环的表达式3在 continue 语句(跳出本次循环)的作用下照样执行

for语法结构

for(表达式1;表达式2;表达式3){
     语句块;
     }

例3
编写Java程序,输出10的阶乘,结果是3628800。

public class dome2{
	public static void main(String[] args) {
		int i;
		int sum=1;
		for(i=1;i<=10;i++) {
			sum*=i;
		}
		System.out.println(sum);
	}
}

for循环语句的三个表达式可以省略,但分号不可以省略,这样就是一个无限循环体,可以把三个表达式放在外面定义,判断,迭代。

表达式1省略

例4
编写Java程序,输出1-10的和,结果是10。

public class dome2{
	public static void main(String[] args) {
		int sum=0;
		int i=1;
	    for(;i<=10;i++) {
		 sum=sum+i;
	     }
	 System.out.println(sum);
	}
}

表达式2省略

例4
编写Java程序,输出1-100的偶数,涉及到if条件判断语句

public class dome2{
	public static void main(String[] args) {
	    for(int i=1;;i++) {
	    	if(i%2==0) {
	    		System.out.print(i+"\t");
	    	}
	    	if(i>=100)
	    		break;
	    }
	}
}

答案
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100
break语句是指跳出整个循环并且不再循环,而continue 语句是跳出本次循环执行下一次循环,"\t"是一个转义字符–空格符

表达式3省略

例5
编写Java程序,输出1-100的和,答案是5050.

public class dome2{
	public static void main(String[] args) {
		int sum=0;
	    for(int i=1;i<=100;) {
	    	sum=sum+i;
	    	i++;
	    }
	    System.out.println(sum);
	}
}

三个表达式都省略

三个表达式省略类似与while一样,在外部初始化进行初始化,在代码循环体中进行变量的改变。

例6
编写Java程序,输出1-100的累加和,答案是5050。

public class dome2{
	public static void main(String[] args) {
		int sum=0;
	    int i=1;
	    for(;;) {
	    	sum=sum+i;
	    	if(i>=100) {
	    		break;
	    	}
	    	i++;
	    }
	    System.out.println(sum);
	}
}

for循环嵌套语句

for嵌套语句比while嵌套要常用一些,外层循环控制内层循环的执行结果。

例7
编写Java程序,输出九九乘法表。

public class dome2{
	public static void main(String[] args) {
		 for(int i=1;i<10;i++) {
			 for(int j=1;j<=i;j++) {
				 System.out.print(j+"*"+i+"="+i*j+" ");
			 }
			 System.out.println();
		 }
	}
}

11=1
1
2=2 22=4
1
3=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
1
6=6 26=12 36=18 46=24 56=30 66=36
1
7=7 27=14 37=21 47=28 57=35 67=42 77=49
18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64
19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 9*9=81

foreach循环

foreach是for循环的简化版,取消了变量赋值等操作,极大的提高了遍历数组和集合。

语法结构:

for(类型  变量:集合变量){
  语句块
}
public class dome2{
	public static void main(String[] args) {
	 int[] num= {12,34,23,6,7,8,34,5};
	 for (int i : num) {
		System.out.print(i+"\t");
	  }
	}
}

结果
12 34 23 6 7 8 34 5

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值