<
Java 选择结构和循环结构
>
上一篇

Java 对象和类
下一篇

Java 基本数据类型
苏轻 2018年11月27日 19:47:51

选择结构

import java.lang.Math;
import java.util.Scanner;

public class TestIf {
    public static void main(String[] args) {
        int a = (int)(100 * Math.random());
        int b = (int)(100 * Math.random());
        int c = (int)(100 * Math.random());
        // Math.random()
        // 该方法返回一个[0, 1)区间的double类型的随机数

        System.out.printf("%d + %d + %d = ?\n", a, b, c);
        System.out.println("请输入你的答案:");
        Scanner scanner = new Scanner(System.in);
        int result = scanner.nextInt();

        if (result == a+b+c) {
            System.out.println("答案正确!");
        } else {
            System.out.println("答案错误!正确答案是 " + (a+b+c) + " !");
        }
    }
}
// 这段代码是接着上面的代码的!
        switch (((a+b+c)/10)) {
            case 5:
            case 10:
            case 15:
            case 20:
            case 25:
                System.out.println("恭喜中三等奖!");
                break;
            case 8:
            case 18:
            case 28:
                System.out.println("恭喜中二等奖!");
                break;
            case 0:
                System.out.println("恭喜中一等奖!");
                break;
            default:
                System.out.println("没有中奖!");
                break;
        }

循环结构

while (/*boolean表达式*/) {
    // 循环体
}
do {
    // 循环体(先do后判断,所以循环体至少会被执行一次!)
} while (/*boolean表达式*/)
for (初始表达式;布尔表达式;迭代因子) {
    // 循环体
}
for(int i = 1, j = 1; i < 5; i++, j = i * 2) {
    //...
}

苏轻笔记!

for循环的初始化、条件判断、步进部分是可以为空的,for(;;)和while()一样,都是无限循环。但是通常来说我想并不会这么使用它,除非特立独行。我觉得代码还是追求简单美观为好。

    public static void main(String[] args) {
        System.out.println("使用while循环计算1~100的和");
        int a = 0;
        int sum = 0;
        while (a < 100) {
            sum += ++a;
        }
        System.out.println(sum);

        System.out.println("使用for循环计算1~100的和");
        int sum2 = 0;
        for (int i = 1; i <= 100; i++) {
            sum2 = sum2 + i;
        }
        System.out.println(sum2);
    }
// 这是一个排序算法,将20个随机数排序。
import java.lang.Math;
public class MaoPao {
    public static void main(String[] args) {
        int count = 20;
        int[] array = new int[count]; // 数组
        for (int i = 0; i < count; i++) array[i] = (int)(100 * Math.random());
        for (int i = 0; i < count; i++) System.out.print(array[i] + " ");
        System.out.println();

        for (int i = 0; i < count; i++) { // 冒泡排序
            for (int j = i + 1; j < count; j++) {
                if (array[i] > array[j]) { // 交换位置
                    array[i] = array[i] + array[j];
                    array[j] = array[i] - array[j];
                    array[i] = array[i] - array[j];
                }
            }
        }
        for (int i = 0; i < count; i++) System.out.print(array[i] + " ");
        System.out.println();
    }
}
// 在循环之前设置标签,因为我们希望在其中嵌套另一个循环。
outer: for (int i = 101; i < 150; i++) {
    for (int j = 2; j < i / 2; j++) {
        if (i % j == 0){
            continue outer;
            // 由于break和continue关键字通常只中断当前循环,
            // 但若随同标签使用,它们就会中断到存在标签的地方。
        }
    }
    System.out.print(i + "  ");
}

语句块

方法

  对象名.方法名(实际参数列表)
    public static void main(String[] args) {
        int result; // 两个随机数,求和
        int a1 = (int)(100 * Math.random());
        int a2 = (int)(100 * Math.random());
        result = addition(a1 , a2/*实参*/); // 调用方法
        System.out.println(result);
    }

    static int addition(int a, int b/*形参*/) {
        System.out.printf("计算 %d + %d 的值\n", a, b);
        return a + b;
    }

苏轻划重点:必须形参不同

递归结构

// 计算阶乘
public class Dg {
    public static void main(String[] args) {
        int n = 10;
        System.out.printf("%d的阶乘的结果为%s", n, jieCheng(n));
    }

    static long jieCheng(int n) {
        if (n == 1) {
            System.out.println(1);
            return 1;
        } else {
            System.out.print(n + " * ");
            return n * jieCheng(n - 1);
        }
    }
}

苏轻笔记。

这些都是最基础的东西了,基本上大部分的编程语言都有这些结构,有基础的话就很好理解。只要还在编程这些东西就会一直在使用,所以要多敲代码孰能生巧举一反三。

Top
Foot