JAVA的控制结构
- 控制结构的分类
- 顺序结构
- 分支结构
- if语句
- 第一种格式(if)
- 案例
- 第二种格式(if else)
- 案例
- 第三种格式(if 、else if、......、else)
- 案例
- Switch case语句
- 格式
- 案例
- 循环结构
- while循环
- 格式
- 案例
- do while循环
- 格式
- for循环
- 格式
- 执行流程
- 案例
- 循环结构注意
- 面试题
- 面试题1
- while代码
- for代码
- 增强版
控制结构的分类
- 顺序结构
- 分支结构
- 循环结构
顺序结构
最常用的控制结构语句,从上到下,从左到右依次执行。
分支结构
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循环内部的变量只在循环内部生效。
循环结构注意
- 如果循环结构通过{}括起来循环体,则紧跟在循环后边的第一行语句被认为是循环体,之后的语句都认为是循环结束的语句。
- break:跳出的功能,跳出循环,如果是双层循环,break跳出的是离它最近的循环。
- 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+"不是质数");
}
}
}
}