# 程序逻辑

一般程序有三种结构:顺序结构,选择结构和循环结构。

程序默认是顺序结构,一条一条执行。

public class test{
    public static void main(String[] args){
        System.out.println("1");
        System.out.println("2");
        System.out.println("3");
        System.out.println("4");
    }
}
1
2
3
4
5
6
7
8

# 选择结构

# if语句

public class test{
    public static void main(String[] args){
       int a = 10;
       if(a<2){
           System.out.println("less than 2");
       } else if(a < 5){
           System.out.println("less than 5");
       } else{
           System.out.println("bigger than 5");
       }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12

# switch语句

public class test{
    public static void main(String[] args){
       String inputStr="orange";
       switch(inputStr){
           case "apple":
                System.out.println("this is apple!");
           case "orange":{
                System.out.println("this is orange!");
           }
           case "banana":
                System.out.println("this is banana!");
                break;
            default:{
                System.out.println("other things!");
            }
       }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

switch语句最早的时候只能是判断整数或字符,从JDK1.5支持枚举,从JDK1.7支持String。

# 循环结构

现在要用打印一个由*号组成的金字塔形。

public class test{
    public static void main(String[] args){
        int lineNum=5,i=1;

        while(i<=lineNum){
            for(int j=0;j<(lineNum-i);j++){
                System.out.print(" ");
            }
            for(int j=0;j<i;j++){
                System.out.print("* ");
            }
            System.out.println();
            i++;
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 循环控制

public class test{
    public static void main(String[] args){
        int lineNum=5,i=0;
        do{
            i++;
            if (i % 2 ==0) {
                if ( i==4 ) {
                    break;
                }
                continue;
            }
            System.out.println(i);

        }while(i<lineNum);

    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 方法

也可以叫函数,在面向对象的语言中一般被称为方法。它是一段重复调用的代码。

public class test{
    public static void main(String[] args){
        int a=1,b=2;
        System.out.println(add(a,b));
    }
    public static int add(int a,int b){
        return a+b;
    }
}
1
2
3
4
5
6
7
8
9

# 方法重载

方法名称相同,参数的类型或个数不同,实际调用时根据参数的类型,调用相应的方法,被称为重载。

public class test{
    public static void main(String[] args){
        int a=1,b=2;
        System.out.println(add(a,b));
        add(a);
    }
    public static int add(int a,int b){
        return a+b;
    }
    public static void add(int a){
        System.out.format("only a:%s",a);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 方法递归

方法递归调用指该方法自己调用自己,直到条件结束才返回。容易出现内存溢出。

public class test{
    public static void main(String[] args){
        System.out.println(sum(4));
    }

    public static int sum(int a){
        if (a == 1)
            return 1;
        else
            return a+sum(a-1);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12