思考者zy  

顺序结构

JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。

顺序结构是最简单的算法结构。

语句与语句之间,框与框之间是按从上到下的顺序进行的,它是任何一个算法都离不开的一种基本的算法结构。

package scanner;

public class shunxu {
  public static void main(String[] args) {
      System.out.println("hello1");
      System.out.println("hello2");
      System.out.println("hello3");
      System.out.println("hello4");
      System.out.println("hello5");
  }
}

选择结构

if单选择结构

我们很多时候要去判断一个东西是否可行的,然后才去执行这样的过程用if语句来表示

if(布尔表达式){

}

package scanner;

import java.util.Scanner;

public class If {
  public static void main(String[] args) {
      Scanner scanner = new Scanner (System.in);
      System.out.println("请输入相应的内容");
      String s =scanner.nextLine();

      //判断字符串是否相等
      if (s.equals("Hello")) {
          System.out.println(s);
      }
      System.out.println("End");
      scanner.close();
  }
}

if双选择结构

语法

if(){

}else{

}

package scanner;

import java.util.Scanner;

public class Ifdouble {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      System.out.println("请输入成绩");
      int score = scanner.nextInt();
      if (score>60){
          System.out.println("及格");
      }else{
          System.out.println("不及格");
      }
      scanner.close();
  }
}

if多项选择结构

语法

if(){

}else if{

}else if{

}else if{

}else{

}

成绩从100到0分级代码:

package scanner;

import java.util.Scanner;

public class Ifmore {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      System.out.println("请输入成绩");
      int score= scanner.nextInt();

      if (score==100){
          System.out.println("满分");
      }else if(score<100&&score>=85){
          System.out.println("优秀");
      }else if(score<85&&score>=60){
          System.out.println("中等");
      }else if(score<60&&score>=0){
          System.out.println("不及格");
      }else {
          System.out.println("不存在");
      }
      scanner.close();
  }
}

嵌套的if语句

语法

if(){

if(){

}

}

在1~100之间找一个数

Switch多选择结构

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值为一个分支

类型可以是:byte,short,int或char

switch支持string类型

package scanner;


public class Switch {
  public static void main(String[] args) {
      //case 穿透 //switch匹配一个具体的值
      char grade ='d';
      switch (grade){
          case 'a':
              System.out.println("优秀");
              break;
          case 'b':
              System.out.println("中等");
              break;
          case 'c':
              System.out.println("及格");
              break;
          case 'd':
              System.out.println("不及格");
              break;
          default:
              System.out.println("不存在");
      }
  }
}

string类型

package scanner;

public class Switch2 {
  public static void main(String[] args) {
      String name ="张洋";
      switch (name){
          case "Java程序员":
              System.out.println("张洋");
              break;
          case "张洋":
              System.out.println("Java程序员");
              break;
          default:
              System.out.println("无名氏");
      }
  }
}

反编译

就是java写的源码编译后生成字节码

image-20211123160422251

看不懂

我们找到java.class文件通过idea可以反编译为源码

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package scanner;

public class Switch2 {
  public Switch2() {
  }

  public static void main(String[] args) {
      String name = "张洋";
      byte var3 = -1;
      switch(name.hashCode()) {
      case -124514958:
          if (name.equals("Java程序员")) {
              var3 = 0;
          }
          break;
      case 782827:
          if (name.equals("张洋")) {
              var3 = 1;
          }
      }

      switch(var3) {
      case 0:
          System.out.println("张洋");
          break;
      case 1:
          System.out.println("Java程序员");
          break;
      default:
          System.out.println("无名氏");
      }

  }
}

多看源码

posted on 2021-11-23 18:39  思考者zy  阅读(30)  评论(0)    收藏  举报