Java-day05 学习笔记 循环要素及结构

循环


1、循环: 反复执行一段相同或相似的代码
2、循环三要素:
1) 循环变量的初始化
2) 循环的条件(以循环变量为基础)
3) 循环变量的改变(向着循环的结束变)

循环变量: 在整个循环过程中所反复改变的那个数

2、循环结构:

有条件的执行某语句多次,并非每句必走

  1. while结构: 先判断后执行,有可能一次都不执行
while结构:
1)语法:
while(boolean){
语句块-------------反复执行的代码
}
2)执行过程:
判断boolean的值,若为true则执行语句块,
再判断boolean的值,若为true则再执行语句块,
再判断boolean的值,若为true则再执行语句块,
如此反复,直到boolean的值为false时循环结束
  1. do…while 结构: 先执行后判断,至少执行一次
    要素1和要素3相同时,首选do…while
do...while结构:
1)语法:
 do{
语句块
 }while(boolean);
2)执行过程:
先执行语句块,再判断boolean的值,若为true则
再执行语句块,再判断boolean的值,若为true则
再执行语句块,如此反复,直到boolean为false则循环结束
  1. for 应用率最高,与次数相关的循环
for结构:
1)语法:
 //   1       2      3
for(要素1 ; 要素2 ; 要素3){
语句块/循环体----------------------反复执行的代码  4
}
2)执行过程:
12432432432432432432432

例 1:

求累加和:1+2+3+4+...+99+100=?跳过个位为3的
public static void main(String[] args) {
	int sum = 0; //存和
	for(int i=1;i<=100;i++){
		if(i%10==3){
			continue; //跳过循环体中剩余语句而进入下一次循环(去i++了)
		}
		sum = sum+i; //累加(在本身基础之上加)
	}
	System.out.println("sum="+sum);
		}
	}

例2:

输出9 的乘法表
	public static void main(String[] args) {
	//正序输出
	for(int num=1;num<=9;num++){
		System.out.println(num+"*9="+num*9);
	}
	//部分输出(奇数)
	for(int num=1;num<=9;num+=2){
		System.out.println(num+"*9="+num*9);
	}
	//倒序输出
	for(int num=9;num>=1;num--){
		System.out.println(num+"*9="+num*9); 
	}					
  }
}

选择标准?

  1. 先看循环是否与次数相关:
    1.1) 与次数相关------------直接上for
    1.2) 与次数无关,再看要素1(循环变量的初始化)与要素3(循环变量的改变)是否相同:
    1.2.1) 若相同----------直接上do…while
    1.2.2) 若不同----------直接上while

break: 跳出循环
continue: 跳过循环体中剩余语句而进入下一次循环

嵌套循环:

  1. 循环中套循环,一般多行多列时使用,外层控制行,内层控制列
  2. 执行规则: 外层循环走一次,内层循环走所有次
  3. 建议: 嵌套的层数越少越好,能用一层就不用两层,能用两层就不用三层
    若业务必须通过三层以上的循环才能解决,说明设计有问题

例:输出九九乘法表

public static void main(String[] args) {
	for(int num=1;num<=9;num++){ //控制行
		for(int i=1;i<=num;i++){ //控制列
				System.out.print(i+"*"+num+"="+i*num+"\t");
		}
		System.out.println(); //换行
	}
}		

系统随机生成数 -------其中一种表达方式
Math.random();

1到1000的随机数
Math.random()-------------0.0到0.99999999999999999…
*1000---------------------0.0到999.999999999999999…
(int)-----------------------0到999
+1------------------------1到1000
例:猜数字

public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	int num = (int)(Math.random()*1000+1); //1到1000之内的随机数
	System.out.println(num); //假设输出这个数		
	//300(大),200(小),-1(下次)
	int guess;
	do{
		System.out.println("猜吧!");
		guess = scan.nextInt(); //1+3
		if(guess==-1){ 
			System.out.println("下次再来吧!");
			break; //退出循环
		}
		if(guess>num){
			System.out.println("太大了");
		}else if(guess<num){
			System.out.println("太小了");
		}else{
			System.out.println("恭喜你猜对了");
		}
	}while(guess!=num); //2.
	}
}

明天继续加油!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值