JAVA基础05

JAVA基础05

循环结构

for循环

格式 : for (初始化语句 ; 条件控制语句 ; 循环控制语句) {

​ 循环体语句

​ }

执行流程 : 先执行初始化语句 , 再执行条件控制语句 , 如果判断结果为true就执行循环体语句 . 最后再执行循环控制语句 . 如果条件控制语句判断为false 就跳出该循环 .

注意 : for 循环中的初始化语句只会执行一次 , 而且初始化语句中定义的变量只在该循环中有效,跳出该循环后就失效 , 且在循环体外部调用不到.

例题 :



//打印1-100中能被7整除或数字中包含7的数字
public class Demo3 {
public static void main(String[] args) {
	for(int i= 1 ; i<=100;i++) {
		if(i%10==7||i/10==7||i%7==0) {
			System.out.println(i);
		}
	}
}
}


while 循环

格式 : 初始化语句

​ while(条件控制语句) {

​ 循环体语句

​ 循环控制语句

}

执行流程 : 先执行初始化语句 , 再执行条件控制语句 , 如果判断结果为true就执行循环体语句 . 最后再执行循环控制语句 . 如果条件控制语句判断为false 就跳出该循环 .

for循环和while循环对比:

​ for循环适合针对一个范围判断进行操作

​ while循环适合不知道循环的次数,或者要求循环的次数

例题 :

  •  /* 一次攒5块,多少次攒够1024块
      * 一张纸0.12m,对折多少次到8848m
      */
     public class Demo5 {
     	public static void main(String[] args) {
     		int i = 1;
     		int sum = 5;
     		while (sum <= 1024) {
     			sum += 5;
     			i++;
     		}
     		System.out.println(i);
     		int n = 0;
     		double h = 0.12;
     		while (h <= 8848) {
     			h *= 2;
     			n++;
     		}
     		System.out.println(n);
     	}
     	}
     	
     
    
import java.util.Scanner;
//贪吃蛇游戏
public class Demo6 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int sum = 0;
		System.out.println("请输入一个数字");
		int i = sc.nextInt();
		while (true) {
			if (i == 1) {
				sum += 10;
				System.out.println("请输入一个数字");
				i = sc.nextInt();
			} else {
				System.out.println("游戏结束");
				break;
			}
		}
		System.out.println("游戏结束,得分:" + sum);
	}
}

do …while循环

格式 : do{

​ 循环体语句

​ 循环控制语句

}while(条件控制语句)

执行流程 : 先执行循环体语句 , 再执行循环控制语句 , 再执行条件控制语句结果为true就返回执行循环体语句,条件控制语句为false就跳出该循环体往下执行 .

import java.util.Scanner;
//通过键盘录入一个密码,判断是否登录成功
public class DoWhileDemo {
public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	 int m ;
	 do {
		 System.out.println("请输入密码");
		 m = sc.nextInt();
	 }while(m!=123456) ;
	 System.out.println("登录成功");
}
}

==符号即可以比较基本数据类型,也可以比较引用数据类型,比较基本数据类型时,比较的是他们所代表的数值是否相同,比较引用数据类型时,比较的是它的地址值是否相同.

因为字符串是引用数据类型 , 所有比较两个字符串内所含的数据是否相同时,不能使用==符号 , 应该使用equals

用法如下:

import java.util.Scanner;
//判断输入密码是否正确
public class Demo7 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
//方法一		
		String password = null;
		do {
			System.out.println("请输入一个密码");
			password = sc.next();
			if (!password.equals("123456")) {
				System.out.println("密码输入错误,请重新输入");
			} else {
				System.out.println("登录成功");
				break;
			}
		} while (false);	

//方法二
		 String m = null ;
		 do {
			 System.out.println("请输入密码");
			 m = sc.next();
		 }while(!m.equals("123456")) ;
		 System.out.println("登录成功");
	}	
	}

三种循环语句之间的用法建议

for循环适合 , 当你知道一个明确的循环次数 , 可以针对一个范围进行的操作

whlie 循环适合不知道循环的次数 , 或要求去求循环的次数时进行的操作

do…while 适合至少需要循环一次的操作

for 循环嵌套

使用for循环嵌套打印一个图型 或99乘法表时, 外层循环控制行数 , 即这个图型需要打印多少行 . 内层图形, 控制每行需要打印的个数 . 外层每进行一次循环 , 内层都会把它整个循环走完才会跳到外层的下一次循环 .

核心思想 : for循环中的初始化语句 , 表示这个循环的一个起点 , 条件控制语句代表了这个循环的终点 , 循环控制语句代表了这个循环每一次迈出步伐的大小 .

//打印倒三角
public class Demo11 {
public static void main(String[] args) {
	for(int i =0;i<5;i++) {
		for(int j =i;j<6;j++) {
		System.out.print("*");
		}
			System.out.println();	
	}
}
}



//99乘法表
public class Demo12 {
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+"="+j*i+"\t" );//  "/t"制表符,使表格变得规整
		}System.out.println();
	}
}
}
//打印一个由数字组成的等腰三角型
public class Demo16 {
	public static void main(String[] args) {
		int i = 0;
		int j = 0;
		int k = 0;
		int l = 0;
		for (i = 1; i < 6; i++) { //控制行数
			for (j = 5; j >= i; j--) {  //打印一个倒三角的空格图形
				System.out.print(" ");
			}
			for (k = 1; k <= i; k++) {   //打印一个每一行都是升序的正三角图形
				System.out.print(k);
			}
			for (l = i - 1; l > 0; l--) {  //打印一个每一行都是降序的正三角图形 
				System.out.print(l);
			}
			System.out.println();
		}
	}
}


     1
    121
   12321
  1234321
 123454321

跳转控制语句

break 只能在switch和循环语句中使用 , 执行到break时会跳出switch语句或跳出本身所在的循环体 , 如果想跳出外循环 , 可以给外循环定义一个循环名 , 然后加在break的后面 .

return 可以在任意场景使用 , 循环体中使用时代码运行到return , 就会自动结束整个方法 , return也可以在方法中做返回值使用 .

continue 只能在循环体中使用 , 离开循环体场景 , 直接报错 . 使用continue时如果执行到它 , 它会自动吃掉该循环的运行结果 . 并继续下次循环 .

//return break  continue 的应用
public class Demo13 {
	public static void main(String[] args) {
		A: for (int i = 0; i < 10; i++) {
			if (i == 2) {
				break A;
			}
			System.out.println(i);
		}
		System.out.println("我是循环外代码");
		for (int i = 0; i < 10; i++) {
			if (i == 3) {
				return;
			}
			System.out.println(i);
		}
		System.out.println("我是循环外代码");
		for (int i = 0; i < 10; i++) {
			if (i == 3) {
				continue;
			}
			System.out.println(i);
		}
		System.out.println("我是循环外代码");
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值