文章目录

  • 顺序结构
  • 分支结构
  • 一:if语句
  • ①: if使用
  • ③:if中注意的关于{}
  • 二. switch分支判断语句
  • ①:概念:判断一个变量与一系列的值中某个值是否相等,每个值是一个分支
  • ②:语法格式
  • ③:规则
  • ④:代码案例
  • 循环结构
  • 一.while语句 先判断再执行
  • ①:语法格式
  • ②:代码案例
  • 二.do....while语句 先执行再判断
  • ①:语法格式
  • ②:代码案例
  • 三.for循环
  • ①:语法格式
  • ②:格式解释
  • 四.java中引入数组的增强for语句
  • ①:语法格式
  • ②: 语法解释
  • ③:代码案例


顺序结构

属性结构是最简单,最常用的程序结构,只要按照解决问题的步骤写出相应的语句就行,他的执行顺序是从上到下依次执行
加色

分支结构

一:if语句

①: if使用

1. 单独使用if, 多个if块都会进入判断。如果满足,都会分别执行。

public class TestWork12 {
    public static void main(String[] args) {


        int a = 1;
        int b = 1;
        int c= 1;
        int d = 1;

        if (a == 1){
            System.out.println("第一个if被执行了");
        }
        if (b == 1){
            System.out.println("第二个if被执行了");
        }
        if (c == 1){
            System.out.println("第三个if被执行了");
        }
        if (d== 1){
            System.out.println("第四个if被执行了");
        }

    }
}

运行结果:

第一个if被执行了
第二个if被执行了
第三个if被执行了
第四个if被执行了

2. if…else , 这个作为一个整体, 满足条件执行if, 不满足执行else.

import java.util.Scanner;

public class TestWork1 {
    public static void main(String[] args) {
//       定义李四的成绩
        int lisiScore = 80;
//控制台输入李四的成绩
        Scanner input = new Scanner(System.in);
        System.out.println("请输入张三的成绩:");
//       接收控制台输入李四的成绩
        int zhangsanSocore = input.nextInt();
//        取变量真假判断
        boolean isBigger = zhangsanSocore>lisiScore;
        if (isBigger){
            System.out.println("张三的成绩比李四的成绩高");
        }else {
            System.out.println("张三的成绩没有李四高");
        }
    }
}

运行结果:

请输入张三的成绩:
90
张三的成绩比李四的成绩高

3. if else if else if … else 多个条件的判断,但整体只会执行一个代码块,执行完就跳出整个if else

import java.util.Scanner;

public class day2 {
    public static void main(String[] args) {
//        输入赵本山的考试成绩
        Scanner input = new Scanner(System.in);
        System.out.println("请输入赵本山的考试成绩:");
        int score = input.nextInt();
        if (score==100){
            System.out.println("爸爸买辆车");
        }else if (score>=90){
            System.out.println("妈妈买MP4");
        }else if (score>=60){
            System.out.println("妈妈给他买本参考书");
        }else {
            System.out.println("什么都不买");
        }

    }

}

运行结果:

请输入赵本山的考试成绩:
50
什么都不买

③:if中注意的关于{}

  1. 控制语句中,比如if,循环等,如果省略花括号{},那么紧跟在后面的第一条代码才算该控制语句中的。
  2. 一般不建议省略,影响代码的可读性。

二. switch分支判断语句

①:概念:判断一个变量与一系列的值中某个值是否相等,每个值是一个分支

②:语法格式

switch (变量expression) {
            case value1:
              语句
                break; //可选
            case value2:
              语句
                break; //可选

             case value3:
              语句
                break; //可选
              .
              .
              .    //可以有任意数量的case语句
           
            default:  //可选
                 语句

③:规则

  1. switch不能像if那要判断任意数据类型,变量只支持int(包含以下, short,byte),char,enum(1.5jdk之后枚举类型),String(1.7jdk之后).
  2. switch可以有多个case语句,每个case语句后面要跟一个比较的值和冒号
  3. case语句中的值数据类型必须要与变量的数据类型相同,只能是常量或者字面量且在多个case语句中值唯一不能冲突。
  4. 由上到下用switch中的表达式和值进行比较,如果匹配成功,就执行case后的语句,在执行到
  5. . break, 打断,用于switch和循环中,遇到switch语句时,switch语句结束,程序跳到switch语句后面的语句执行,case语句不必须包括break语句。
  6. switch如果不写break, 一旦进入了某个控制块, 会继续往下穿透,直到有break为止。
  7. default的位置可以放在switch任意位置, 但是只能有一个default。

④:代码案例

  1. 变量不支持上述其他的数据类型
package com.seecen.basic.day2;

public class TestWork13 {
    public static void main(String[] args) {
        float a = 2.2f;
        switch (a){
            case 2.2:
            break;
            case 2.3:
                break;
            case 2.4:
                break;
            case 2.5:
                break;
            default:
                System.out.println("程序结束");
        }
    }
}
Error:(6, 16) java: 不兼容的类型: 从float转换到int可能会有损失

6.switch如果不写break, 一旦进入了某个控制块, 会继续往下穿透,直到有break为止。

package com.seecen.basic.day2;

public class TestWork13 {
    public static void main(String[] args) {
        int a = 5;
        switch (a){
            case 1:
                System.out.println("case1被执行了");
            case 5:
                System.out.println("case2被执行了");
            case 3:
                System.out.println("case3被执行了");
            case 2:
                System.out.println("case4被执行了");
            default:
                System.out.println("无匹配");

        }
        System.out.println("switch代码块结束了");
    }
}
case2被执行了
case3被执行了
case4被执行了
无匹配
switch代码块结束了



package com.seecen.basic.day2;

//
public class TestWork9 {
    public static void main(String[] args) {
        int num =2;
        switch (num){
            case 1:
                System.out.println("进入case1");
                break;

            case 2:
                System.out.println("进入了case2");
//                break;
            default:
                System.out.println("进入了default");

            case 3:
                System.out.println("进入了case3");
//                break;
//            default:
//                System.out.println("进入了default");
//

        }
        System.out.println("swith结束。。。");
    }
}
进入了case2
进入了default
进入了case3
swith结束。。。

循环结构

一.while语句 先判断再执行

概念:只要布尔表达式是true,循环体会一直执行下去。

①:语法格式

while(布尔表达){

语句//循环内容

}

②:代码案例

package com.seecen.basic.day2;

public class TestWork13 {
    public static void main(String[] args) {
        int i = 1;
        while (true) {
            System.out.printf("第%s循环\n",i);
            if (i ==5){
                break;
            }
            i++;
        }
    }
}
第1循环
第2循环
第3循环
第4循环
第5循环

二.do…while语句 先执行再判断

概念:即使不满足条件也至少执行一次,直到布尔表达式为false;

①:语法格式

do{
		语句
		}while(布尔表达式)

②:代码案例

package com.seecen.basic.day2;


public class TestWork13 {
    public static void main(String[] args) {
        int i =1;
       do {
           System.out.printf("第%s循环\n",i);
           i++;

       }while (i<=7);

    }
}
第1循环
第2循环
第3循环
第4循环
第5循环
第6循环
第7循环

三.for循环

①:语法格式

for(初始化表达式;循环条件;循环控制变量){
        语句
	}
  1. 声明区域(初始化表达式) 2. 判断区域(循环条件) 3. 值变化区域 (循环控制变量) 4. 具体执行代码的区域(语句)

②:格式解释

1.如果初始表达式为1 循环条件是2,循环控制变量是3 语句是4
执行顺序是1>2>4>3>2>4>3>2>4>3…
每执行一次循环,更新循环控制变量
2. 初始化表达式和循环控制条件都可以省略:
此时的循环只有循环条件,此时的循环关系相当于while循环while(){}

package com.seecen.basic.day2;


public class TestWork13 {
    public static void main(String[] args) {
        int i = 0;
        for (; i <3 ; ) {
            System.out.println("hh");

        }
    }
}

四.java中引入数组的增强for语句

①:语法格式

for(声明语句:表达式){
	语句
	}

②: 语法解释

声明语句:声明新的局部变量,此变量的类型必须与数组的变量类型相同,作用域在循环语句块内,值和数组元素的值相等
表达式:访问的数组名,或者返回值为数组的方法

③:代码案例

package com.seecen.basic.day2;


public class TestWork13 {
    public static void main(String[] args) {
                /**遍历数字*/
//       定义一个数组
        int[]numbers ={1,3,7,3,6};
//        遍历数组中所有的值 声明:访问数组表达式
        for (int x:numbers){
//            输出x
            System.out.print(x);
//            中间用,隔开
            System.out.print(",");

        }
        System.out.println("\n");
     /**       还可以遍历字符串*/
     String [] names={"jims","hhe","heh","zhang"};
     for (String x:names){
         System.out.print(x);
         System.out.print(",");
     }

    }
}
1,3,7,3,6,

jims,hhe,heh,zhang,