java流程控制

java流程控制

if单选泽结构

代码如下:

package com.zhz.base.struct;

import java.util.Scanner;

public class ifDemo01 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);

       System.out.println("请输入内容:");
       String s = scanner.nextLine();
       if(s.equals("hello")){                      //如果键盘输入的字符串等于hello,默认为true。
           System.out.println(s);                  //相等的话,输出s的内容
      }
       System.out.println("end");
       scanner.close();
  }
}

if 双选择结构

代码如下:

if(布尔表达式){布尔表达式值为true}else{布尔表达式为false}

package com.zhz.base.struct;

import java.util.Scanner;

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

       if(i >60){
           System.out.println("及格");
      }else{
           System.out.println("不及格");
      }
       scanner.close();
  }
}

if多选择结构

代码如下:

package com.zhz.base.struct;

import java.util.Scanner;

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

       if(i==100){
           System.out.println("恭喜满分");
      }else if(i<100 && i>=90){
           System.out.println("A级");
      }else if(i<90 && i>=80){
           System.out.println("B级");
      }else if(i<80 && i>=70){
           System.out.println("C级");
      }else if(i<70 && i>=60){
           System.out.println("D级");
      }else if(i<60 && i>=0){
           System.out.println("不及格");               //严谨
      }else{
           System.out.println("成绩不合法");           //只会执行满足条件的一层
      }
       scanner.close();
  }
}

总结:if语句至多有一个else语句,else必须在所有else if后面,一旦其中一个else if检测为true,其他else if,if语句都将跳过执行。

嵌套的if结构

在if中嵌套if,比如找1-100中的一个数,用二分法。

switch多选择结构

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

代码如下:

switch支持字符串String类型了;

package com.zhz.base.struct;

import java.util.Scanner;

public class IfDemo04 {
   public static void main(String[] args) {
       /*
       switch语法说明:
       1、 表达式的类型只能为byte、short、char和int这4种之一。
      2、 case后面的值1、值2…值n只能为常数或常量,不能为变量。
       3、 break关键字的意思是中断,指结束switch语句,break语句为可选。
      4、 case语句可以有任意多句,是标号语句。
      5、 default语句可以写在switch语句中的任意位置,功能类似于if语句中的else.执行流程:
           当表达式的值和对应case语句后的值相同时,既从该位置开始向下执行,一直执行到switch语句的结束,
           在执行中,如果遇到break语句,则结束switch语句的执行。
        */
       Scanner scanner = new Scanner(System.in);
       System.out.println("请输入一个字符:");
       char i = scanner.next().charAt(0);           //使用scanner接受char类型字符的方法,charAt()方法可返回指定位置的字符;
       switch (i) {                                 //switch就是匹配一个值
           case 'a':
               System.out.println("孙尚香");         //a 结果是孙尚香
               break;
           case 'b':
               System.out.println("钟馗");           //b 结果是钟馗,亚瑟
                                                    //不用break,会产生case穿透
           case 'c':
               System.out.println("亚瑟");
               break;
           case 'd':
               System.out.println("项羽");
               break;
           default:
               System.out.println("未知英雄");
      }
       scanner = new Scanner(System.in);              //重新创建一个对象
       System.out.println("请输入字符串:");            //我们在获取了int类型的数据后,再去获取String类型的值会获取不到,这时候我们可以重新new一个对象
       String s = scanner.nextLine();
       switch (s){
           case "apple":
               System.out.println("苹果");
               break;
           case "banana":
               System.out.println("香蕉");
               break;
      }
  }
}

项目源码:反编译 java文件--变成--class(字节码文件)--变成--反编译(IDEA),怎么把class文件,机器的文件反编译成人可读的文件。

scanner = new Scanner(System.in);
       System.out.println("请输入字符串:");
       String s = scanner.nextLine();
       byte var5 = -1;
       switch(s.hashCode()) {
       case -1396355227:
           if (s.equals("banana")) {
               var5 = 1;
          }
           break;
       case 93029210:
           if (s.equals("apple")) {
               var5 = 0;
          }
      }

       switch(var5) {
       case 0:
           System.out.println("苹果");
           break;
       case 1:
           System.out.println("香蕉");
      }

方法是在project structure下找到文件路径,找到class字节码文件,在struct文件夹下右键open in explorer,把class文件拖入想要放得struct文件夹下,双击可以打开。

while循环

代码一:计算1~100的和

package com.zhz.base.struct;

public class WhileDemo02 {
   public static void main(String[] args) {
       int i = 1;
       int sum = 0;
       while(i<=100){
           sum+=i;
           i++;
      }
       System.out.println(sum);
  }
}

代码二:输出1~100

package com.zhz.base.struct;

public class WhileDemo01 {
   public static void main(String[] args) {
       int i = 0;
       //输出1~100 while(true) 死循环,定时检查,一直连接
       while(i<100){
           i++;
           System.out.println(i);
      }

  }
}

do while循环

对于while语句,不满足条件,不会进入循环(先判断后执行),但do while不满足条件,也至少会执行一次(先执行后判断);

package com.zhz.base.struct;

public class WhileDemo03 {
   public static void main(String[] args) {
       int i = 1;
       int sum = 0;
       do{
           sum+=i;
           i++;
      }while(i<=100);
       System.out.println(sum);
  }
}

for循环

for(初始化;布尔表达式;更新) for( ; ; )死循环

100.for 自动生成

for (int i = 0; i < 100; i++) {
   
}

代码一:

package com.zhz.base.struct;

public class ForWhile {
   public static void main(String[] args) {
       for(int i = 1;i<=100;i++){
           System.out.println(i);
      }
       System.out.println("循环结束");
       
  }
}

代码二:

package com.zhz.base.struct;

public class ForWhile {
   public static void main(String[] args) {
       for(int i = 1;i<=100;i++){
           if(i%5==0){
               System.out.println(i+"\t");
          }
           if(i%(5*3)==0){
               //System.out.println();         //println()输出玩会换行
               System.out.print("\n");     //print输出玩不会换行
          }
      }
  }
}

嵌套的for循环做99乘法表

package com.zhz.base.struct;

import java.util.Scanner;

public class ChengFaBiao {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       for (int i = 1; i < 10; i++) {
           for(int n =1;n <= i;n++){
               System.out.print(i+"*"+n+"="+(i*n)+"\t");
               //if(i==n)
               //System.out.print("\n");
               //System.out.println();
          }
           System.out.print("\n");
      }
  }
}
posted @ 2021-01-19 15:33  爱罗翔的张三  阅读(81)  评论(0编辑  收藏  举报