第一部分:Java基础编程-程序流程控制-循环结构

while循环:

四要素:

循环初始化

循环条件

循环体

迭代条件

/*
一、while循环四要素:
循环初始化
循环条件
循环体
迭代条件
二、while循环的结构:
①
while(②){
	③;
	④;
}
说明:while循环千万不要丢了迭代条件,一旦丢了就导致死循环!
		写程序要避免死循环
		《for循环和while循环是可以相互转换的》!
			区别:for循环和while循环的初始化条件部分作用域不同。
*/
class WhileTest {
	public static void main(String[] args) {
		int i = 1;
		while(i <= 10){
			System.out.println(1);
			i ++;		
		}
	}
}

do-while:

/*
一、do-while循环四要素:
循环初始化
循环条件
循环体
迭代条件
二、do-while循环的结构:
①;
do{
	③;
	④;
}while(②);

执行过程:①-③-④-②

说明:
1.do-while至少会执行一次循环体!
2.开发中使用for和while更多一些,do-while较少。
*/
class DoWhileTest {
	public static void main(String[] args) {
		int i = 1;
		do{
			if(i % 2 == 0){
				System.out.println(i);
				i++;
			} 
		}while(i <= 10);

	}
}

综合题目:

/*
从键盘输入个数不确定的整数,并记录正数和负数的个数,输入为0时结束。
*/
/*
1.不在循环条件部分限制次数的结构:for(;;)或者while(true)
2.结束循环的方式:
				Ⅰ:循环条件返回false
				Ⅱ:循环体中执行break
*/
import java.util.Scanner;
class Test {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int positiveNum = 0;
		int negativeNum = 0;
		while(true){                //        for(;;){
			int i = scan.nextInt();
			if(i == 0){
				break;
			}
			if(i < 0){
				negativeNum += 1;
			}else{
				positiveNum += 1;
			}
		}
		System.out.println("负数个数:" + negativeNum);
		System.out.println("正数个数:" + positiveNum);
	}
}

嵌套循环:

/*
嵌套循环的使用
1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环

2.
外层循环:循环结构B
内层循环:循环结构A

3.说明:
内层结构的循环体遍历一遍,外层执行一次
假设外层需要执行m次,内层需要执行n次,共执行m*n次。

4.技巧:外层循环控制行数,内容控制列数。
*/
class ForForTest {
	public static void main(String[] args) {
		for(int i = 1;i <= 4;i++){
			for(int j = 1;j <= (5 - i);j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

嵌套循环:九九乘法表和输出一百以内的质数:

/*
输出99乘法表
*/
class NineNineTest {
	public static void main(String[] args) {
		for(int i = 1;i <= 9;i++){
			for(int j = 1;j <= i;j++){
				System.out.print(j + "*" + i + "="  + i * j);
				System.out.print('\t');
			}
			System.out.println();
		}
		System.out.println("Hello World!");
	}
}
/*
输出100以内的质数(素数,只能被1和本身整除)
*/
/*
class ZhiShuTest{
	public static void main(String[] args){
		int i = 1;
		while(i <= 100){
			int num = 0;
			for(int j = 2;j <= i - 1;j++){
				if(i % j == 0){
					num++;
				}
			}
			if(num == 0){
					System.out.println(i);
			}
			i++;
		}
	}
}
/*
class ZhiShuTest{
	public static void main(String[] args){
		int i = 1;
		while(i <= 100){
			boolean isFlag = true;//一个旗帜,表明是不是进入了if
			int num = 0;
			for(int j = 2;j < i;j++){
				if(i % j == 0){
					isFlag = false;
					break;
				}
			}
			if(isFlag == true){
					System.out.println(i);
			}
			i++;
		}
	}
}
*/
class ZhiShuTest{
	public static void main(String[] args){
		long start = System.currentTimeMillis();
		int i = 1;
		while(i <= 100){
			boolean isFlag = true;//一个旗帜,表明是不是进入了if
			int num = 0;
			//优化2:对本身是质数的自然数是有效的,其实非质数也有效,只不过是优化一已经生效了
			for(int j = 2;j <= Math.sqrt(i);j++){
				if(i % j == 0){
					isFlag = false;
					break;//优化1:只对本身非质数的自然数有效
				}
			}
			if(isFlag == true){
					System.out.println(i);//优化3:每次输出影响了输出的效率,直接计算总数就可以了
			}
			i++;
		}
		long end = System.currentTimeMillis();
		long time = end - start;
        System.out.println(time);
	}
}



使用continue:
class ZhiShuTest{
	public static void main(String[] args){
		long start = System.currentTimeMillis();
		int i = 1;
		label: while(i <= 100){
			for(int j = 2;j <= Math.sqrt(i);j++){
				if(i % j == 0){
                    continue label;
				}
			}
			i++;
		}
		long end = System.currentTimeMillis();
		long time = end - start;
        System.out.println(time);
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值