任何复杂的程序逻辑都可以通过三种结构来是实现
顺序结构:从上往下逐行执行,每句必走
分支结构:基于条件执行的语句,并非每句必走
循环结构:是指在程序中需要反复执行某个功能而设置的一种程序结构

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);
   }
}