循环语句

1.1 什么是循环

循环就是在循环条件满足的情况下,反复执行特定代码。

1.2 为什么要使用循环

当我们要打印100次helloworld
或者我们想实现1-10的和
1+2+3+4+5....
int sum = 0;
sum = sum + 1;
sum = sum + 2;
sum = sum + 3;
sum = sum + 4;
sum = sum + 5; 
可以发现有一些是相同的内容。这些相同的内容我们就可以采用循环的方式来实现

1.3 循环的分类

  1. while 循环
  2. do/while 循环
  3. for循环

4.循环的组成部分

  1. 初始化部分:对循环变量赋初值
  2. 循环条件部分:判断循环变量是否超出某个界限
  3. 循环体部分:要循环执行的具体逻辑.
  4. 更新循环变量部分:修改循环变量的值

第二节 : while循环

2.1 格式:

 while (boolean表达式) {语句块}

2.2 执行过程

 先判断表达式的值。若为true.则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成立为止。
 特点:先判断再执行。

2.3.1 练习一:需求: 打印输出5次helloworld

// 初始化部分
int count = 0;
// 2循环条件 
while(count<5){//  1 2 3 
    //3循环体
	System.out.println("hello world");
    //4更新循环变量
	count++;
}

2.3.2 练习二:需求 : 打印输出 1–10

int i =1;
while(i<=10){
	System.out.println(i);
 	i++;
}

2.3.3练习三:求1-100的和

//1初始化变量
int i=1;
int sum=0;//保存和
//2循环条件
while(i<=100){
  sum=sum+i;//sum+=i;	
  i++;
}
System.out.println("1-100的和是:"+sum);

2.3.4 练习四:需求 : 求 10 的阶乘

int sum = 1;
int j = 1;
while(j<=10){
   	sum=sum*j;
   	j++;
}
System.out.println("10的阶乘"+sum);

2.3.5 练习五:求 100以内的 偶数的和

int z=2;
int sum=0;
while(z<=100){
  sum=sum+z;
  z+=2;
}
System.out.println("1-100的偶数的和是:"+sum);

或
int z=1;
int sum=0;
while(z<=100){
  if(z%2==0){
    sum=sum+z;
  }
  z++;
}
System.out.println("1-100的偶数的和是:"+sum);

第三节: do-while循环

3.1格式

do  {语句块}while(表达式) ;

3.2 执行过程

先执行语句,再判表达式的值,若为true,再执行语句,否则结束循环。
特点:先执行,再判断。

3.3.1 练习: 打印三次helloworld

// 1 初始化部分
int i = 0;
do{
   // 2 循环体
   System.out.println("Hello World!");
   // 4 循环变量变化部分
	i++;
}while(i<3);// 3 循环条件

3.3.2 用do/while实现打印100以内的奇数

int j = 1;
do{
/*if(j%2==1){
	System.out.println(j);
}
j++;*/
	System.out.println(j);
	j+=2;
}while(j<100);

3.3.3 100 以内能够被3整除 但是不能被5整除的数打印输出

int z = 3;
do{
	if(z%3==0 && z%5!=0){
	    System.out.println(z);
	}
	z++;
}while(z<=100);

3.4 while 和 do-while的区别

while 和 do/while 的区别:

while 先执行循环条件,然后在执行循环体,一句话:先判断,再执行

do/while 先执行循环体 然后在执行循环条件,一句话:先执行,再判断

当第一次 就不满足循环条件的情况下 while循环不能执行循环体, do while 可以执行一次

第四节 : for循环

4.1 格式

for (表达式1 [循环变量初始值设定]; 表达式2 [循环条件判断]; 表达式3 [改变循环变量的值]){
         	循环体
}

4.2 执行过程

首先计算表达式1,接着计算表达式2,若表达式2的值为true,则执行循环体,接着计算表达式3,再判断表达式2的值.依此重复下去,直到表达式2的值=false。
特点:先判断,再执行。

4.3.1 练习: 需求: 打印输出3次helloworld

for(int i = 0;i<3;i++){
	System.out.println("Hello World!");
}

4.3.2 练习: 打印100以内 能被4整除不到能被7整除的数据,每行打印6个

int count = 0;
for(int i = 1; i<=100; i++){
	if(i%4==0 && i%7!=0){
		System.out.print(i+"\t");
		count++;// 6 
		if(count%6==0){
			System.out.print("\n");
		}		
	}
}

4.4 for循环的特殊形式

1. 表达式2一般不可省略,否则为无限循环
 for (i=1; ; i++)   sum=sum+i;
    // 相当于条件永真、永不为false
2. 表达式3亦可省略,但在循环体中须有语句修改循环变量;以使表达式2在某一时刻为false而正常结束循环。
  for (int sum=0,i=1 ;i<=100; ){ 	
     sum=sum+i;
     i++;
  }
3. 若同时省略表达式1和表达式3,则相当于while(表达式2)语句
  int i=0;
  for ( ; i<=100; ) {sum+=i; i++;}
4. 三个表达式均省略 即for(;;)语句,此时相当于while(true)语句.

4.5 几种循环的比较

1. 对于同一问题, 三种循环可相互替代。
2. 循环次数确定的情况优先选用for循环,循环次数不确定的情况,通常选用while和do-while循环。
3. 要防止无限循环––死循环。

第五节 :多重循环:二重循环

多重循环就是循环中嵌套其他循环。

特点:外层循环执行一次,内层循环执行一遍。

5.1 练习一:

使用*号打印矩形。

// 外层循环控制行     内层循环 控制列
//  *******
//	*******
//	*******
//	*******

for (int j = 0;j<4 ; j++){
	for(int i = 0; i< 7 ; i++){
		System.out.print("*");
	}
	System.out.println();
}

5.2 练习二:

打印直角三角形

/*
 找规律
   *			   1       1
   **				2		2
   ***
   ****
   *****		   5        5 
		
*/
for (int i = 1;i<=5 ;i++ ){
	// 1 2 3 4 5 
	for (int j = 1;j<=i ;j++ ){
		System.out.print("*");
    }
	System.out.println();
}

5.3 练习三:

输出等腰三角形

for (int i = 1;i<=5 ;i++ ){
  	//空格
  	for(int k=1;k<=5-i;k++){
        System.out.print(" ");
    }
	// 1 2 3 4 5 
	for (int j = 1;j<=i*2-1 ;j++ ){
		System.out.print("*");
    }
	System.out.println();
}

5.4 练习四:

输出九九乘法表

// 99乘法表
for (int i = 1;i<=9 ;i++ ){
	for (int j = 1;j<=i ;j++ ){
		System.out.print(i+"*"+ j+"="+i*j+"\t");
	}
	System.out.println();
}

第六节: 跳转语句–流程控制语句

break:语句用于终止某个语句块的执行

continue:语句用于跳过某个循环语句块的一次执行,继续下一次执行

6.1 break

  • 使用场合

    • switch结构中:跳出(终止)switch语句
    • 循环结构中:跳出(终止)循环
  • 作用:退出switch和循环结构(如果有多重循环,默认跳出离自己最近的循环)。
    for (int i = 1; i ❤️ ; i++ ){
    for (int j = 1;j<5 ;j++ ){
    if(j == 2){
    break;// 可以指定 跳出的循环
    }
    System.out.println(i+" "+j);
    }

    }
    

使用Lable标签实现跳出指定的循环。(了解)

out : for (int i = 1; i <3 ; i++ ){//定义一个标签out
		 for (int j = 1;j<3 ;j++ ){
				if(j == 2){
					break out;// 可以指定  跳出的循环 
				}
				System.out.println(i+" "+j);
		}
	}

上机练习1:

打印1到10个数,遇到4的倍数程序自动退出

提示:如果i%4==0,则执行break命令

6.2 continue

  • 使用场合

    • continue只能用在循环结构中
  • 作用: 跳过本次循环,执行下一次循环(如果有多重循环,默认继续执行离自己最近的循环)。)

      for (int i = 1;i<4 ;i++){
      		for (int j = 1;j<4 ;j++ ){
      			if(j==2){
      				continue;
      			}
      			System.out.println("i="+i + "  j="+j);
      		}
      }
      System.out.println("Hello World!");
    

使用Label标签改变继续执行的循环

	out: for (int i = 1;i<4 ;i++ ){
			for (int j = 1;j<4 ;j++ ){
				if(j==2){
					continue out ;
				}
				System.out.println("i="+i + "  j="+j);
			}
		}
		System.out.println("Hello World!");

第七节:总结

三种循环语句

while

  先判断条件,再执行循环体

do while

先执行循环体,在判断条件 ,至少执行一次

for

 先判断条件,再执行循环体

如果循环次数固定优先使用for ,如果次数不确定用while和do while

二重循环

外层循环执行一次,内存循环执行一遍。

跳转语句

break :跳出 swith和循环

continue: 跳出本次循环,继续下一次循环

默写

一、if-else语句的语法格式
1.if(布尔表达式){
	 语句或语句块;
}
		
2. if(布尔表达式){
	语句或语句块;
 }else{
	语句或语句块;
}
3.if(布尔表达式) {
           语句或语句块;
 } else if(布尔表达式){
	语句或语句块;
           }
        ……
        else {
	语句或语句块;
          }
4.嵌套的if-else:一个if-else语句块内包含一个或多个if-else语句块
5.在if-else里必然能找到一条出路且只能找到一条出路。
二、switch
1.语句格式:
switch(变量){
	case 值1: 
		表达式1;
		表达式2;
		break;
	case 值2:
		表达式3;
		break;
	case 值3:
		表达式4;
		break;
	default:
		表达式5;
		break;
}
2.switch语句的用法:
  1)根据变量的值,来寻找case的值,如果找到,执行该case下的语句,直到碰到break为止!如果没有break,则会顺序执行后面的语句。
  2)如果变量的值,不与任意一条case的值相等,则会执行default后的语句。default的位置是任意的,并且是可有可无的。
  3)变量的类型,可以是:char byte short int 枚举 String(jdk1.7)
  4)case的值必须是确定的、固定的值(常量),不能是取值范围。
if和switch的使用场景
 1).如果对具体的个数的数值进行判断,用if可以,用switch也可以,建议用switch。
    因为switch会把所有的备选答案加载进入内存当中,选择的效率就会更高。
 2).如果要对数据的区间进行判断时,用if语句。
 3).如果表达式的结果是boolean类型的,毫无疑问用if语句
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值