java开发入门学习五-流程控制

流程控制语句

if, if...else, if..else if..else

与前端相同 略

switch case

与前端不同的是case不能使用表达式,使用表达式会报错

java 复制代码
class TestSwitch {
    public static void main(String[] args) {
       // switch 表达式只能是特定的数据类型: byte short char int 枚举(JDK5.0新增) String(JDK8.0新增)
       // case 后跟的场景,使用表达式与这些常量做相等的判断,不行
       // break 与前端相同,break不写会执行所有语句

       int number = 10;
       switch(number) {
            case 10: 
                System.out.println("10");
                break;
            default: 
                System.out.println("default");
                break;
       }

       char c1 = '你';
       switch(c1) {
            case '你': 
                System.out.println("你");
                break;
            case '我': 
                System.out.println("我");
                break;
            default: 
                System.out.println("default");
                break;
       }

       switch(number) {
            case number > 10:  // 错误
                System.out.println("大于10");
                break;
            default: 
                System.out.println("default");
                break;
       }

    }
}

for,while, do while

与前端的语法都是一致的,break跳出当个for循环;continue跳出当次循环

java 复制代码
class TestFor {
    public static void main(String[] args) {
        int sum = 0, count = 0;
        for(int i = 1; i <= 100; i++) {
            if(i % 2 == 0) {
                sum += i;
                count += 1;
            }
        }

        System.out.println("输入出"+ count + "输出" + sum);
    }
}

相关测试案例

键盘输入功能case

java 复制代码
// 引入包
import java.util.Scanner;
public class TestCase {
    public static void main(String[] args)  {
       Scanner scanner = new Scanner(System.in);

       System.out.println("请输入姓名:");
       String name = scanner.next();

        System.out.println("请输入性别:男\\女");
        // 获取字符串第一个字段
        String gender = scanner.next();

        System.out.println("请输入年龄");
        // 获取字符串第一个字段
        int age = scanner.nextInt();

        System.out.println("请输入体重:");
        double weight = scanner.nextDouble();

        System.out.println("请输入是否单身:单身true;不单身 false");
        boolean isSingle = scanner.nextBoolean();

        // == 用于比较两个变量是否引用同一个对象(内存存储地址)
        if(gender == "男") {
            System.out.println("男");
        }
        // 比较字符串值是否相等
        if(gender.equals("男")) {
            System.out.println("男1");
        }

             
    }
}

随机数

java 复制代码
class RandomNum {
    public static void main(String[] args) {
        // 会返回[0.0,1.0)范围的double类型的随机数
        double d1 = Math.random();

        // 获取[0, 100]范围的随机整数
        int i1 = (int)(Math.random() * 101); // [0, 100)

        // 获取一个[1,100]范围的随机整数
        int i2 = ((int)(Math.random() * 100)) + 1; // [0, 100)

        // 获取一个[a,b] 范围的随机整数
        // (int)(Math.random() * (b-a+1)) + a

    }
}

输出*

java 复制代码
class TestFor1 {
    public static void main(String[] args) {
       int maxStar = 5;
       for(int i = 1; i <= 3; i++) {
            String str = "";
            // *的个数
            int num = (i * 2) - 1;
            // 空格数
            int space = (maxStar - num) / 2;

            for(int j = 1; j <= maxStar; j++)  {
                if(j <= space || j > space + num) {
                     str += "-";
                }
                if(j > space && j <= space + num) {
                    str += "*";
                }
            }
            System.out.println(str);
       }
    }
}

输出99乘法表

java 复制代码
class Testfor2 {
     public static void main(String[] args) {
      for(int i = 1; i <= 9; i++) {
        String expression = "";
        for(int j = 1; j <= i; j++) {
             expression +=  i + "*" + j + "=" + (i * j) + "\t";

        }
        System.out.println(expression);
      }
    }
}

找出100内所有质数

java 复制代码
class Testfor3 {
     public static void main(String[] args) {
        int count = 0;
        for(int i = 2; i <= 100; i++) {
            boolean isNum = false;
            for(int j = 2; j < i; j++) {
                if(i%j == 0) {
                    isNum = true;
                    break;
                }
            }

            if(!isNum) {
                count += 1;
                System.out.println(i);
            }
        }
       
        System.out.println("总数:" + count);
    }
}
java 复制代码
class Testfor4 {
     public static void main(String[] args) {
        int count = 0;
        for(int i = 2; i <= 100; i++) {
            boolean isNum = false;
             // 小于i的平方根内计算,优化算法
            for (int i = 2; i <= Math.sqrt(i); i++) {
                if (i % j == 0) {
                    isNum = true;
                }
            }

            if(!isNum) {
                count += 1;
                System.out.println(i);
            }
        }
       
        System.out.println("总数:" + count);
    }
}