Java循环结构

Java语言中用来实现循环控制的有三种,while循环,do-while循环,for循环。
在这里插入图片描述

while循环

比较简单,与C语言相同
来一个demo

package Liu;

import java.util.Scanner;

public class Text {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		int count = 1;
		while(count<=20) {
			if(count%2 == 1) {
				System.out.print(count+" ");
			}
			count++;
		}
		
	}

}

/*输出
*1 3 5 7 9 11 13 15 17 19 
*/

while循环是直到while后面的判断条件不成立的时候才退出循环。还可以用break语句写“死循环”语句

do-while循环

do-while型循环是直到型循环,与while循环有一定区别,while循环是先判断条件表达式,再决定是否进行循环;而do-while循环是先执行循环体一次,再判断条件表达式,决定是否进行循环。

do-while循环执行时,先执行循环体body,再判断条件表达式,为真时执行循环体,当条件表达式为false时终止循环。
来一个demo

/**
 * 输出1-50中既可以被3整除又可以被7整除的自然数,要求用do-while表达式
 */
package Liu;
import java.util.Scanner;
public class Text {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int num =1;
		do {
			if(num%3==0 && num%7==0) {
				System.out.print(num + " ");
			}
			num++;
		}while(num<=50);	
	}
}
/*输出
* 21 42
*/

while循环和do-while循环可以相互转换

for循环

for循环是最标准的循环语句,其功能也最为强大,实现当型循环。下面将给出实现100以内的所有素数和求100以内所有偶数累加和来使用for循环

/**
 * 输出100以内所有素数,要求用for循环
 */
package Liu;

import java.util.Scanner;

public class Text {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int tag;//声明标记值
		for(int i=2;i<=100;i++) {
			tag = 0;				//标记值归0
			for(int j=1;j<=Math.sqrt(i);j++) {
				if(i%j==0) {
					tag++;		//统计因子个数
				}//if
			}//for(j)
			if(tag==1) {			//如果是素数则输出
				System.out.print(i + " ");
			}//if
		}//for(i)	
	}//main
}

/*输出
* 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
*/
/**
 * 输出100以内偶数和,要求用for循环
 */
package Liu;

import java.util.Scanner;

public class Text {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int sum = 0;//声明求和
		for(int i=2;i<=100;i=i+2) {
			sum = sum + i;//累加
		}
		System.out.println("100以内偶数和:" + sum);
	}//main
}

/*输出
* 100以内偶数和:2550
*/

多重循环

循环嵌套执行过程为:每执行一次外层循环,内层循环要按照循环条件执行,直到内层循环退出,再执行,最后外层循环退出。

下面也给出例子实现
编写程序,将9,12,3,30,8按照从小到大顺序输出

/**]
 * 输出100以内偶数和,要求用for循环
 */
package Liu;
import java.util.Scanner;
public class Text {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arg = {9,12,3,30,8};//初始化arg数组
		//进行排序
		int temp;//声明临时变量
		for(int i=0;i<arg.length;i++) {
			for(int j=0;j<arg.length-i-1;j++) {		//每一趟循环都把最大的元素挤到最后面
				//
				if(arg[j]>arg[j+1]) {		//j<arg.length-i-1防止下标arg[j+1]越界
					temp = arg[j];
					arg[j] = arg[j+1];
					arg[j+1] = temp;
				}//if
			}//for(j)
		}//for(i)
		
		//从大到小输出数组arg
		for(int k=0;k<arg.length;k++) {
			System.out.print(arg[k] + " ");
		}		
	}//main
}
/*输出
* 3 8 9 12 30 
*/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值