第4章 循环语句

4.1while循环

  • while语句
 while(循环条件表达式){
 		循环体;
 }
  • 示例 猜数字
    在这里插入图片描述
import java.util.Scanner;
public class Test4_1 {
	public static void main(String[] args){
	    //1.随机产生[0,100]的随机数
		int number=(int)(Math.random()*101);
		//2.提示用户输入所猜想的值
		System.out.println("Guess a magic number between 0 and 100");
		Scanner scanner=new Scanner(System.in);
		//3.比较所猜的值与随机生成的值
		while(true){
			System.out.print("Enter a guess:");
			int num=scanner.nextInt();
			if(num<number){
				System.out.println("too low");
			}else if(num>number){
				System.out.println("too high");
			}else{
				System.out.println("Yes the number is "+number);
				break;
			}
		}
	}
}

4.2 do…while语句

do{
	...循环体;
}while(循环条件表达式);
import java.util.Scanner;

public class Test4_1dowhile {
	public static void main(String[] args){
		Scanner scanner=new Scanner(System.in);
		int number=(int)(Math.random()*101);
		int num=0;
		do{
			System.out.print("Enter a guess:");
			num=scanner.nextInt();
			if(num<number){
				System.out.println("too low");
			}else if(num>number){
				System.out.println("too high");
			}
		}while(num!=number);
		System.out.println("Yes the number is "+number);
	}
}

4.3 for循环

  • for 语句
for(循环变量赋初值;循环条件;增量表达式){
		循环体语句块;
}
  • for 嵌套语句
    在这里插入图片描述

  • 示例:最大公约数
    在这里插入图片描述

import java.util.Scanner;

public class Test4_2 {
	public static void main(String[] args){
		Scanner scanner=new Scanner(System.in);
		//1.提示用户输入 n1 n2
		System.out.println("Enter n1 abd n2:");
		int n1=scanner.nextInt();
		int n2=scanner.nextInt();
		//2.比较两个值的大小
		int min=Math.min(n1, n2);
		//3.求取公约数
		for(int k=min;k>=1;k--){
			if(n1%k==0&&n2%k==0){
				System.out.println(k);
				break;
			}
		}
	}
}
  • 示例:预测未来学费
    在这里插入图片描述
import java.util.Scanner;


public class Test4_3 {
	public static void main(String[] args){
		Scanner scanner=new Scanner(System.in);
		double tuition=10000;
		int year=0;
		while(tuition<20000){
			tuition=tuition*1.07;
			year++;
		}
		System.out.println("the year is "+year);
	}
}
  • 将十进制转换成十六进制
    在这里插入图片描述
import java.util.Scanner;
public class Test4_4 {
	public static void main(String[] args){
		System.out.print("输入一个十位数:");
		Scanner scanner=new Scanner(System.in);
		int number=scanner.nextInt();
		String str="";
		while(number!=0){
			int num=number%16;
			System.out.println(num);
			if(num<10){
				str=num+str;
			}else{
				switch(num){
					case 10:
						str="A"+str;
						break;
					case 11:
						str="B"+str;
						break;
					case 12:
						str="C"+str;
						break;
					case 13:
						str="D"+str;
						break;
					case 14:
						str="E"+str;
						break;
					case 15:
						str="F"+str;
						break;
				}
			}
			number/=16;
		}
		System.out.println("0X"+str);
	}
}

4.4 循环嵌套

  • 示例:打印直角三角形
    在这里插入图片描述
package lian4;

public class 示例 {
	public static void main(String[] args){
		for(int i=1;i<=5;i++){
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

在这里插入图片描述

package lian4;

public class 示例 {
	public static void main(String[] args){
		
		for(int i=1;i<=5;i++){
			for(int k=1;k<=5-i;k++){
				System.out.print(" ");
			}
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}
  • 示例:打印菱形
    在这里插入图片描述
package lian4;

public class 示例 {
	public static void main(String[] args){
		
		for(int i=1;i<=9;i++){
			for(int k=1;k<=Math.abs(5-i);k++){
				System.out.print(" ");
			}
			for(int j=1;j<=i&&(i+j<=10);j++){
				System.out.print("* ");
			}
			System.out.println();
		}
	}
}
  • 示例:打印空心菱形
    在这里插入图片描述
package lian4;

public class 示例 {
	public static void main(String[] args){
		
		for(int i=1;i<=9;i++){
			for(int k=1;k<=Math.abs(5-i);k++){
				System.out.print(" ");
			}
			for(int j=1;j<=i&&(i+j<=10);j++){
				if(j==1||j==i||(i+j==10)){
					System.out.print("* ");
				}else{
					System.out.print("  ");
				}
			}
			System.out.println();
		}
	}
}

4.5break和coutinue(跳转语句)

  • break语句
    break语句有两种作用:其一,break语句用来退出switch结构,跳出switch结构继续执行后续语句。其二,break语句用来终止循环。
  • coutinue语句
    continue语句用来终止本次循环。其功能是终止当前正在执行的本次循环,即跳过后面剩余的语句,转而执行循环的第一条语句,计算和判断循环条件,决定是否进入下一轮循环。
  • return语句
    return语句并不是专门用于结束循环的,return的功能是返回一个方法,当一个方法执行到一个return语句时,这个方法将被结束。
  • 示例:判断回文串
    在这里插入图片描述
import java.util.Scanner;


public class Test4_6 {
	public static void main(String[] args){
		String s="上海自来水来自海上";
		
		boolean flag=true;
		for(int m=0,n=s.length()-1;m<s.length()/2&&n>s.length()/2;m++,n--){
			if(s.charAt(n)!=s.charAt(m)){
				flag=false;
				break;
			}
		}
		if(flag){
			System.out.println("是回文!");
		}else{
			System.out.println("不是回文!");
		}
	}
}
  • 示例:显示素数

在这里插入图片描述

public class Test4_7 {
	public static void main(String[] args){
		int count=0;//记录素数个数
		int number=1;
		while(count<=50){
			boolean flag=true;
			for(int i=2;i<=number/2;i++){
				if(number%i==0){
					flag=false;
					break;
				}
			}
			if(flag){
				count++;
				System.out.print(number+"   ");
				if(count%10==0){
					System.out.println();
				}
			}
			number++;
		}
	}
}

本章小结

1.循环语句有三类: while 循环、 do-while 循环和 for 循环。
2.循环中包含重复执行的语句的部分称为循环体。
3.循环体执行一次称为循环的一次迭代。
4.无限循环是指循环语句被无限次执行。
5.在设计循环时, 既需要考虑循环控制结构, 还需要考虑循环体。6.while 循环首先检査循环继续条件。 如果条件为 true, 则执行循环体; 如果条件为 false, 则循环结
束。
7.do-while 循环与 while 循环类似, 只是 do-while 循环先执行循环体, 然后再检査循环继续条件,
以确定是继续还是终止。
8.while 和 do-while 循环常用于循环次数不确定的情况。
9.标记值是一个特殊的值, 用来标记循环的结束。
10.for 循环一般用在循环体执行次数固定的情况。
11.for 循环控制由三部分组成。 第一部分是初始操作, 通常用于初始化控制变量。 第二部分是循环继
续条件, 决定是否执行循环体。 第三部分是每次迭代后执行的操作, 经常用于调整控制变量。 通常,
在控制结构中初始化和修改循环控制变量。
12.while 循环和 for 循环都称为前测循环( pretest loop), 因为在循环体执行之前, 要检测一下循环
继续条件。
13.do-while 循环称为后测循环( posttest loop), 因为在循环体执行之后, 要检测一下这个条件。
14.在循环中可以使用 break 和 continue 这两个关键字。
15.关键字 break 立即终止包含 break 的最内层循环。
16.关键字 continue 只是终止当前迭代。

猜你喜欢

转载自blog.csdn.net/sl1130398099/article/details/82993650
今日推荐