JAVA的控制结构

  • 控制结构的分类
  • 顺序结构
  • 分支结构
  • if语句
  • 第一种格式(if)
  • 案例
  • 第二种格式(if else)
  • 案例
  • 第三种格式(if 、else if、......、else)
  • 案例
  • Switch case语句
  • 格式
  • 案例
  • 循环结构
  • while循环
  • 格式
  • 案例
  • do while循环
  • 格式
  • for循环
  • 格式
  • 执行流程
  • 案例
  • 循环结构注意
  • 面试题
  • 面试题1
  • while代码
  • for代码
  • 增强版


控制结构的分类

  1. 顺序结构
  2. 分支结构
  3. 循环结构

顺序结构

最常用的控制结构语句,从上到下,从左到右依次执行。

分支结构

if 结构 和 switch case结构

if语句

第一种格式(if)

if(判断条件){
	代码块
}

判断条件:结果为boolean类型
首先执行判断条件,如果值为true,进入if执行代码块,如果值为false,则if结束。

案例

例子:根据年龄判断是否成年

int age =30;
if(age>=18){
	System.out.println("成年人")
}

第二种格式(if else)

if(判断条件){
	代码块
}else{
代码块2
}

首先执行判断条件,如果值为true,进入if执行代码块,如果值为false,则进入else。

案例

例子:根据年龄判断是否成年

int age =30;
if(age>=18){
	System.out.println("成年人")
}else{
System.out.println("未成年人")
}

例子:根据判断数值的奇偶性

int num =5;
if(num%2==0){
	System.out.println(num+“是偶数”)
}else{
System.out.println(num+“是奇数”)
}

第三种格式(if 、else if、…、else)

if(条件1){
	代码块
}else if(条件2){
代码块2
}else if(条件3){
代码块3
}else{
代码块N
}

先执行判断条件1,如果值为true,执行代码块1。如果值为false,执行判断条件2,如果为true,执行代码块2,如果为false,执行判断条件3,如果为true,执行代码块3,否则执行else。且一旦某个判断条件成立,则不再往下执行。

案例

例子:根据年龄判断是否成年

int age =30;
if(age>=1&&age<18){
	System.out.println("未成年人")
}else if(age>=18&&age<=30){
	System.out.println("青年人")
}}else if(age>30&&age<=60){
	System.out.println("中年人")
}else if(age>60){
	System.out.println("老年人")
}else{
	System.out.println("年龄不合法")	
}

Switch case语句

可以匹配 byte、short、char、int、String数据类型

格式

Switch(值){
	case值1:
	代码块1;
	break;
case值2:
	代码块2;
	break;
	......
case值N:
	break;
Default:
	代码块;
	break;
}

注意:执行流程:用Switch的值和case的值从上到下依次比较,如果相等,则执行该case后面所有的代码块;如果和所有的case值都不匹配,则执行default的代码块。可以在case代码块中添加break,跳出Switch语句。

案例

//成绩由A到E分别对应优秀至不合格以及不合法等级
class SwitchDemo{
	public static void main(String[] args){
		Switch(str){
			case"A":
				System.out.println("优秀");
				break;
			case"B":
				System.out.println("良好");
				break;
			case"C":
				System.out.println("中等");
				break;
			case"D":
				System.out.println("合格");
				break;
			case"E":
				System.out.println("不合格");
				break;
			default:
				System.out.println("不合法");
				break;
		}
	}
}

循环结构

三种格式:while、do while、for
三要素:判断条件、循环体、改变判断条件语句

while循环

格式

while(判断条件){
	循环体;
	改变判断条件语句;
}

执行流程:判断条件结果为boolean,如果为true,则执行循环体;改变判断条件的语句;再次执行判断条件,如果为true,继续执行循环体,改变判断条件,直到某一次执行判断条件时得到false,while循环结束。

案例

//输出10次hellow word
class WhileDemo{
	public static void main(String[] args){
		int num =0;
		while (num<10){
			System.out.println("Hellow Wold"+num);
			num++;
		}
	}
}
//输出100以内所有数的和
class WhileDemo{
	public static void main(String[] args){
		int i =1;
		int sum = 0;
		while (i<=100){
			sum=sum+i;
			i++;
		}
		System.out.println(sum);
	}
}

do while循环

格式

do{
	循环体;
	改变判断条件的语句;
}while(判断条件);

执行程序:首先执行循环体,改变判断条件的语句;执行判断条件,如果为true,继续循环;如果为false,则循环结束。
do while 和 while的区别:do while 无论如何都会先执行一次循环,但while看判断条件去确定能否进入循环。

for循环

格式

for(初始化语句;判断条件;改变判断条件的语句){
	循环体;
}

执行流程

1.初始化语句
2.判断条件
	true:3.循环体
		  4.改变判断条件语句
		  5.判断条件
		  	true:重复345
	false:整个for循环结束

案例

class fordemo{
	public static void main(String[] args){
		int sum =0;
		for(int num=1;num<=100;num++){
			sum+=num;
		}
		System.out.println(sum);
	}
}
//定义在for循环初始化语句处的变量,或者定义在for循环内部的变量只在循环内部生效。

循环结构注意

  1. 如果循环结构通过{}括起来循环体,则紧跟在循环后边的第一行语句被认为是循环体,之后的语句都认为是循环结束的语句。
  2. break:跳出的功能,跳出循环,如果是双层循环,break跳出的是离它最近的循环。
  3. continue:跳出当次循环,继续下一次循环。

面试题

面试题1

判断一个数是否为质数(质数:只能被1和它本身整除的数及时质数,如果该数能被除了1和它本身之外的任意数整除,它一定不是质数。)

while代码

class demo{
	public static void main(String[] args){
		int num =11;
		int i=2;
		boolean flag =true;
		while(i<num){
			if(num%i=0){
				flag=false;
			}
			i++;
		}
		if(flag){
		System,out.println(num+"是质数");	
		}else{
		System,out.println(num+"不是质数");		
		}
	}
}

for代码

(1)从键盘获取一个要判断的数字
(2)通过for循环判断该数字是否为质数

import java.util.Scanner;
class demo{
	public static void main(String[] args){
		Scanner sc =new Scanner(System.in);//Scanner 方法的介绍下次更新做简单解释
		System,out.println("请输入要判断的字: ");
		int num =sc.nextInt();
		boolean flag =ture;
		for (int i =2;i<=num-1;i++){
			if(num%i ==0){
				flag = false;
			}
			i++;
		}
		if(flag){
			System,out.println(num+"是质数");
		}else{
			System,out.println(num+"不是质数");
		}
	}
}

增强版

输出1-1000以内的质数,双层循环,循环嵌套
在外层循环值固定的情况下,内层循环都执行完成才会执行下次外层循环。

class demo{
	public static void main(String[] args){
		for (int num=2;num<=1000;num++){
			boolean flag=true;
			for (int i=2;i<=num-1;i++){
				if (num%i==0){
					flag=false;
					break;
				}
			}
			if(flag){
				System,out.println(num+"是质数");
			}else{
				System,out.println(num+"不是质数");
			}
		}
	}
}