java基础学习笔记--循环

循环语句

  • for循环
  • while循环
  • do while循环
  • 循环嵌套
  • break,continue关键字

循环语句是根据条件要求程序反复执行某些操作,直到程序"满意"为止。

1. for循环语句

for循环语句格式

for(表达式1①;表达式2 ②;表达式3 ③){
//循环要做的事情 ④ }

for循环语句流程
for语句执行规则:

先执行表达式1,然后执行表达式2,

如果表达式2结果为true, 执行for大括号的代码

执行完大括号的代码, 执行表达式3, 再去执行表达式2

①–>②-true->④–>③–>②-true->④–>③…

​ |fasle

​ 结束

特征: 先判断后执行,可能一次都不执行

细节:
1.循环变量的作用域:默认在for内部有效

count作用域在for内部有效
for(int count = 1;count <=10;count++){
    System.out.println(count);
}

2.for小括号中三个表达式, 都可以省略, 但是两个分号不能省略

//表达式1省略,好处:提升循环变量的作用域
int count = 1;
for(;count <=10;count++){
 
}
System.out.println(count);
表达式2省略,循环条件恒为true
int count = 1;
for(;;count++){
 //死循环
 System.out.print(count);
}
//表达式3省略
int count = 1;
for(;count<=10;){
 System.out.print(count);
 count++;//修改循环变量
}
//表达式都省略
for(;;){
System.out.print("for循环"); //死循环
}

2.while循环

while循环语法格式

while(条件){
//循环要做的事情
}

while语句执行规则:

先进行条件判断,条件为true执行大括号的代码,执行完,又进行条件判断

循环结束:1.条件为flase 2.大括号中的代码执行break代码

while特征:先判断,后执行,可能一次都不执行

使用循环的步骤:

1.先判断问题中是否有重复做的事情,或者重复的代码,如果有,使用循环;如果没有,不使用
2.找循环条件,一般是变量与值的比较 i=5;i<10
3.找重复执行的代码
4.避免出现死循环,修改循环变量,每循环一次,修改一次

//while循环 输出1-10
//每执行一次,计数一次,定义一个初始值为0(java)/1的变量,每循环一次加1
int count = 1;
//循环条件:count<=10
//重复的代码:输出
//修改循环变量:count++  ++count count+=1
while(count <= 10){
    System.out.println(count);
    count++; //修改循环变量
}

3.do-while循环

do-while循环语句格式:

do{
//循环要做的事情 
}while(条件);//注意有分号

do-while循环和while循环的区别是do-while的循环体至少被执行一次,
执行流程下图所示
在这里插入图片描述
在这里插入图片描述

案例:模拟学生做题,如果没通过就继续做,通过了则结束

import java.util.Scanner;
public class Demo{
	public static void main(String[] args){
	Scanner input = new Scanner(System,in);
		//1.有重复做的事情:做题
		//2.循环条件: 不通过 字符串isOK 输入 y 通过 n 不通过
		//3.做题
		//4.修改循环变量
		String isOk;
		do{
            System.out.println("学生正在做题");
            System.out.println("老师输入是否通过(y/n)");
            //isOk的作用域:包裹它的最近的大括号内部有效
             isOk = input.next();//修改循环变量
		}while(isOK,equals("n"));	
	}
}

4. 循环嵌套

循环内部嵌套循环
while嵌套while,for,do-while
do-while嵌套do-while,for,while
while嵌套while,for,do-while

外循环执行一次,内循环执行一轮

总循环次数=外循环次数*内循环次数

内循环执行条件: 外循环成立, 内循环条件成立

public class Demo1{
	public static void main(String[] args){
	//循环嵌套
	int i = 1;
	while(i<10){
     for(int j = 0;j<10;j++){
         System.out.print(i+""+j+",");
     }
     System.out.println();
     i++;
	}
}
}

在这里插入图片描述

5. break continue 关键字

continue 用在循环中,基于条件控制,跳过某次循环体内容的执行,
继续下一次的执行
break 用在循环中,基于条件控制,终止循环体内容的执行,也就
是说结束当前的整个循环
break:跳出,退出

  1. 在switch中使用,表示退出switch
  2. 在循坏中使用,表示退出循坏

continue:继续
在循环中使用,跳过本次循环,直接进入下一次循环
break,continue一般配合if使用

public class Demo1{
	public static void main(String[] args){
		//break,continue
		/*
		for(int i = 1; i<=10;i++){
			if( i == 3){
			   //break: 退出循环
			   //break;	 //1 2
			   
			   //continue: 跳过本次循环,直接进入下次循环
			   continue; // 1 2 4 5 6 7 8 9 10
			}
			System.out.println(i);	
		}
		*/
		
		int j = 1;
		//循环嵌套
		while(j<=9){ //外循环
		   /*
		    if(j==5){
				break; //对外循环起作用
			}
			*/
			for(int k = 0; k<10;k++){ //内循环
				System.out.print(j+""+k+", ");	
				 if(k==5){
					break; //对内循环起作用
				 }
			}
			System.out.println();
			j++;
		}
	}	
}

嵌套循环中使用break,continue,写在哪个循环内,就对哪个循环起作用
在这里插入图片描述

public class Demo4{
   public static void main(String[] args){
   //满足7的条件
   		for(int i = 100;i>=1;i--){
            if(i%7 == 0 || i%10 ==7 || i/10%10 ==7){
                System.out.println(i+"是需要的数字");
            }
   		}
     }
}
   	
public class Demo4{
   public static void main(String[] args){
   		for(int i = 100;i>=1;i--){
   		//不满足7的条件 跳过
          //  if(!(i%7 == 0 || i%10 ==7 || i/10%10 ==7)){
          if(i%7 != 0 && i%10 !=7 && i/10%10 != 7 ){
              continue;
          }
                System.out.println(i+"是需要的数字");
          }
   	}
  }

6.Random类

作用:用于产生一个随机数

使用步骤:

第一步:导包

import java.util.*;

第二步:创建对象

Random r = new Random();

第三步:获取随机数

int number = r.nextInt(10);// 10以内的随机数,取值范围是 [0,10}

产生:[n,m] r.nextInt(m-n+1)+n
推导:[n,m) (n,m) (n,m]
[n,m): r.nextInt(m-n)+n
(n,m): r.nextInt(m-n-1)+n+1
(n,m]:r.nextInt(m-n)+n+1
如:r.nextInt(100)产生的随机数,实际上是大于等于0,小于100的,
后面加的n,实际上决定的是前面闭区间的数

案例:猜数字游戏
系统随机产生1~100之间的随机数(使用 Random)
然后使用循环判断,记录次数

演示:(假设系统随机的数字为58) 请输入您第1次猜的数字:50 小了 这个数应该在50~100之间 请输入您第2次猜的数字:75
大了 这个数应该在50~75之间 请输入您第3次猜得数字:60 大了 这个数应该在50~60之间 请输入您第4次猜得数字:55
小了 这个数应该在55~60之间 请输入您第5次猜得数字:58 太棒了,您猜中了

您猜的次数为:5次

import java.util.Scanner;
import java.util.Random;//第一步:导包
public class Demo11 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Random r = new Random();//第二步:创建对象
        int n = r.nextInt(100)+1;//第三步:获取随机数[1,100]之间的
        int max = 100;
        int min = 1;
        for(int i= 1;i<100;i++){
            System.out.println("请输入您第"+i+"次猜的数字:");
            int num = input.nextInt();
            if(num>n){
                max = num;
                System.out.println("您输入的大了,应该在"+min+"~"+num+"之间");
            }
            else if(num<n){
                min = num;
                System.out.println("您输入的小了,应该在"+num+"~"+max+"之间");
            }
            else if(num==n){
                System.out.println("你太天才了,猜对了!");
                System.out.println("您猜的次数为:"+i+"次");
                return;
            }
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值