栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

尚硅谷java学习笔记第四天(循环结构)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

尚硅谷java学习笔记第四天(循环结构)

3:循环结构

根据循环条件,重复性的执行某段代码。

有while、do…while、for三种循环语句。

注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。

循环语句的四个组成部分

初始化部分(init_statement)

循环条件部分(test_exp)

循环体部分(body_statement)

迭代部分(alter_statement)

for循环
class ForTest{
	public static void main(String[] args) {
		//输出5个Hello World!
		for(int i = 1;i <= 5;i++){
		
		System.out.println("Hello World!");
		
		}

		//练习
		int num = 1;
		for(System.out.println("a");num <= 3;System.out.println("c"),num++){
			
			System.out.println("b");
		}
		//输出结果 abcbcbc

		//例题:遍历100以内的偶数
		int sum = 0;//100以内偶数的和
		int count = 0;//100以内偶数的个数
		for(int i = 1;i <= 100;i++){
			
			if(i%2 == 0){
				
				System.out.println(i);
				sum += i;
				count++;
			}		
		}
		System.out.println("100以内偶数的和为:" + sum);
		System.out.println("100以内偶数的个数为:" + count);

	}
}

class ForTest{
	public static void main(String[] args) {
		
		for(int i = 1;i <= 150;i++){
			
			System.out.print(i + " ");
			
			if(i%3 == 0){	
				System.out.print(" foo");				
			}
			if(i%5 == 0){	
				System.out.print(" biz");				
			}
			if(i%7 == 0){	
				System.out.print(" baz");				
			}
			System.out.println();
		}
	}
}
import java.util.Scanner;

class ForTest{
	
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);

		System.out.println("请输入第一个正整数:");	
		
		int num1 = scan.nextInt();
		
		System.out.println("请输入第一个正整数:");	

		int num2 = scan.nextInt();
		
		//先取出两个数的较小值
        int min = (num1 <= num2)? num1: num2;
		//利用for反向遍历
		for(int i = min;i >= 1;i--){

			if(num1%i == 0 && num2%i == 0){	
				System.out.println("两个数的最大公约数为:" + i);
				break;	//终止程序
			}	
		}
		//先取出两个数的较大值
		int max = (num1 >= num2)? num1: num2;
		//利用for正向遍历
		for(int i = max;i <= num1 * num2;i++){
			
			if(i%num1 == 0 && i%num2 == 0){	
				System.out.println("两个数的最小公倍数为:" + i);
				break;//终止程序
			}			
		}
	}
}
public class IfTest2 {
	public static void main(String[] args) {
				
		for(int i = 99;i <= 999;i++){
			
			int bai = i/100;
			int shi = i%100/10;
			int ge = i%10;
						
			if(i == bai * bai * bai + shi * shi * shi + ge * ge * ge){
				
				System.out.println(i);	//153 370 371 407			
			}			
		}				
	}
}

while循环

public class WhileTest {
	public static void main(String[] args) {
				
			//遍历100以内的偶数
			int i = 1;
			
			while(i <= 100){
				
				if(i % 2 == 0){
					
					System.out.println(i);	
				}
				i++;
			}
        	//出了while循环以后,仍然可以调用。
       		 System.out.println(i);
	}
}
do-while
public class WhileTest {
	public static void main(String[] args) {
				
			//遍历100以内的偶数
			int i = 1;
			int sum = 0;
			int count = 0;
			
			do{
				if(i % 2 == 0){
					
				System.out.println(i);
				
				sum += i;
				
				count++;
				
				}
				
				i++;
			
			}while(i <= 100);
								
			System.out.println(sum);
			System.out.println(count);
        
			int num1 = 10;
			while(num1 > 10){
				System.out.println("while");
				num1--;
			}
			//do-while至少执行一次循环体
			int num2 = 10;
			do{
				System.out.println("do-while");
				num1--;
			}while(num1 > 10);				
	}
}
import java.util.Scanner;
public class WhileTest {
	public static void main(String[] args) {
		
			Scanner scan = new Scanner(System.in);
				
			System.out.println("请输入整数:");
				
			int positiveNumber = 0;
			int negativeNumber = 0;
			
			for(;;){//while(true){
				int num = scan.nextInt();
				if(num > 0){
					positiveNumber++;
				}
				if(num < 0){
					negativeNumber++;
				}
				if(num == 0){					
					break;				
				}
			}
			System.out.println("正数的个数为:" + positiveNumber);
			System.out.println("负数的个数为:" + negativeNumber);			
	}
}
嵌套循环

将一个循环放在另一个循环体内,就形成了嵌套循环。其中, for ,while ,do…while均可以作为外层循环或内层循环。

实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的 循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开 始下一次的循环。

设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。

public class ForForTest {
	
	public static void main(String[] args) {
		
		/
		for(int j = 1;j <= 4;j++){
			
			for(int i = 1;i <= 6;i++){
			
				System.out.print('*');
			}
			System.out.println();
		}
		
		for(int j = 1;j <= 5;j++){//控制行数
			
			for(int i = 1;i <= j;i++){//控制列数(个数)
			
				System.out.print('*');
			}
			System.out.println();
		}				
	}
}
		  
		for(int j = 1;j <= 5;j++){//控制行数
			
			for(int i = 1;i <= 6-j;i++){//控制列数(个数)
			
				System.out.print('*');
			}
			System.out.println();
		}
public class ForForTest {
	public static void main(String[] args) {
			
       		 for(int i = 1;i < 10;i++){
					
				for(int j = 1;j <= i;j++){
					
					sum = j * i;
					System.out.print(j+ "*" + i + "=" + i * j + " ");
					
				}
				System.out.println();
			}	
	}
}
public class ForForTest{
	public static void main(String[] args) {
			long start = System.currentTimeMillis();
			boolean isFlag = true;
			
			for(int i = 2;i <= 100000;i++){
				//for(int j = 2;j < i;j++)
				for(int j = 2;j <= Math.sqrt(i);j++){//从2开始,到这个数-1结束为止,都不能被这个数整除
					
					if(i % j ==  0){//从2开始,到这个数-1结束为止,有一个能除尽就返回false
						isFlag = false;
						break;//提高执行效率
					}
	
				}
				if(isFlag){
					System.out.println(i);
				}
				isFlag = true;//从第一个非质数4返回false之后if(isFlag)就没机会执行了,因此在此之后要重置isFlag的值。
				
			}
			long end = System.currentTimeMillis();
			System.out.println(end - start);
	}
}

break和continue关键字的使用
import java.util.Scanner;
public class ForForTest{
	public static void main(String[] args) {
			
			for(int i = 2;i < 10;i++){
						
					if(i % 4 ==  0){
						//break;//1 2 3
						continue;//1 2 3 5 6 7 9 10
					}
					System.out.println(i);
			}
        
			label:for(int i = 1;i <= 4;i++){
	
					for(int j = 1;j <= 10;j++){
					
						if(j % 4 == 0){
							//break;//默认跳出包裹此关键字最近的一层循环。
							//continue;
							//break label;//指定结束标识的一层循环结构
							continue label;//指定结束标识的一层循环结构的当此循环
						}
						System.out.print(j);
					}
					System.out.println();
			}
	}
}
项目一
public class P1Test {
	public static void main(String[] args) {
		int balance = 1000;
		String details = "收支t账户金额t收支金额t说    明n";
		
		boolean isFlag = true;
		while(isFlag){	
		System.out.println("-----------------家庭收支记账软件-----------------n");
		System.out.println("                    1 收支明细");
		System.out.println("                    2 登记收入");
		System.out.println("                    3 登记支出");
		System.out.println("                    4 退    出n");
		System.out.println("                    请选择(1-4):");
		
		char num = Utility.readMenuSelection();
		
		switch(num){
		
		
		case'1':
			System.out.println("-----------------当前收支明细记录-----------------");
			System.out.println(details);		
			System.out.println("--------------------------------------------------");
			break;
		case'2':
			System.out.println("本次收入金额:");
			int income = Utility.readNumber();
			System.out.println("本次收入说明:");
			String explain = Utility.readString();
			
			balance += income;
			
			details += "收入" + "t" + balance + "t" + income + "t" + explain + "n";
			System.out.println("---------------------登记完成---------------------n");
			break;
		case'3':
			System.out.println("本次支出金额:");
			int expend = Utility.readNumber();
			System.out.println("本次支出说明:");
			String explain1 = Utility.readString();
			
			balance -= expend;
			
			details += "支出"+ "t"  + balance + "t" + expend + "t" + explain1 + "n";
			System.out.println("---------------------登记完成---------------------n");
			break;
		case'4':
			System.out.print("确认是否退出(Y/N):");
			char exit = Utility.read/confirm/iSelection();
			if(exit == 'Y'){	
				isFlag = false;				
			}		
		}
		}
	}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324911.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号