任何复杂的程序逻辑都可以通过三种结构来是实现
顺序结构:从上往下逐行执行,每句必走
分支结构:基于条件执行的语句,并非每句必走
循环结构:是指在程序中需要反复执行某个功能而设置的一种程序结构
if结构:一条路;
.1.语法:
if(boolean){
语句块
}
1.2.执行过程:
判断boolean的值:
若true,则执行语句块(语句块走完就整个结束)
若false,则if直接结束,不走语句块
2.if else结构:两条路
1.语法:
if(boolean){
语句块1
}else{
语句块2
}
2.执行过程:
先判断boolean:
若为true,则执行语句块1(整个结束);
若为false,则执行语句块2(整个结束);
3.说明:
语句块1和语句块2,不可能同时执行;也不可能同时不执行;必走其中之一。
3.if...else if结构:多条路
1.语法:
if(boolean1){
语句块1
}else if(boolean2){
语句块2
}else if(boolean3){
语句块3
}
...
}else{
语句块最后一句
}
2.执行过程
判断boolean1,条件为true执行语句块1,为false判断Boolean2...
4.while
循环:基于条件执行多次,并非每句必走,反复多次执行,执行一段相同或者相似的代码
循环三要素:
循环变量的初始化
循环变量:在整个循环过程中反复变化的那个数
循环的条件(以循环变量为基础)
循环变量的改变(向着循环的结束变)
1.while结构
1.1.语法:
while(boolean){ 语句块 }
1.2.执行过程:
判断boolean的值,若为true则执行语句块 再判断boolean的值,若为true则执行语句块 再判断boolean的值,若为true则执行语句块 如此反复,直到Boolean的值为false时循环才能结束
2.do...while结构
2.1.语法:
do{
语句块
}while(boolean);
2.2.执行过程:
先执行语句块,再判断Boolean的值,若为true则再执行语句块,再判断Boolean的值,直到Boolean为false时,循环结束
当循环变量初始化与循环变量改变的代码相同时,用do while最好
switch...case结构:
多条路,若要对整数判断相等首选swich case对应数据类型:byte,short,char,int,string(应用率不高),枚举类型
优点:效率高;结构清晰
缺点:范围有限,只能对整数来判断相等,小数不行
一般搭配break用,在switch中一旦看到break,便会跳出switch
case后的数绝对不能重复
int num =9;
switch (num){
case 1: //if(num==1)
System.out.println(111);
break;
case 2: //一旦相等便会以此为入口,底下的全部执行
System.out.println(222);
break;
case 3:
System.out.println(333);
break;
default: //所有case都没有匹配上才会执行此,不管放在哪边都是最后执行
System.out.println(666);
break;
for结构(非常适合与次数相关的循环)
for中的循环变量的作用域仅在当前for中
语法:
1 2 3
for(循环变量;循环条件;循环变量改变量){
循环的语句块; //4
}
执行过程:
1243243243243......2
变量的重名问题:
当作用域重名时,变量不能重名
第一要素可以写在外边,就算第一要素写在外边,它的分号也是不能省,第三要素可以写在里边,但是分号同样不能省,只有循环条件不能使用逗号连接
break用于跳出循环
continue:可有可无
Scanner scan=new Scanner(System.in);
for (int times=0;times<5;times++){
if(times==3){
continue; //跳过循环体剩下的语句,进行下一次循环
}
System.out.println("行动是成功的阶梯");
}
补充:生成随机数
Scanner scan = new Scanner(System.in);
Math.random()-----生成0.0到0.9999999999......的随机数
int num = (int)(Math.random()*1000+1); //生成1-1000中的随机数
输入:
import java.util.Scanner; //1.导入一个扫描仪
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); //2.新建一个扫描仪叫scan
System.out.println("请输入年龄:");
int age = scan.nextInt(); //3. 用扫描仪扫描下一个整数并将其赋值给age
System.out.println("年龄为:"+age);
}
}