Java SE学习笔记(持续更新ing)

文章目录


前言

在上一篇中,学习了基本运算符的使用以及小练习
SE运算符
运算符小练习
在本篇中会学习循环控制等一系列知识

一、顺序结构

顺序结构:就是按照代码书写的顺序一条条往下执行

public static void main(String[] args) {
        System.out.println("aaa");//aaa
        System.out.println("bbb");//bbb
}

输出aaa bbb 若调换顺序:

public static void main(String[] args){
	System.out.println("bbb");
	System.out.println("aaa");
}

则输出bbb aaa,这种则称为顺序结构

二、分支结构

分支结构:分支是根据判断条件的结果(真或假)而选择的向前路径的运行方式

1.单分支

public static void main(String[] args) {
        int a=10;  
        if (a==10){    //判断条件(布尔表达式)
            System.out.println("hello word");   //代码块
        }
    }

只有一个if语句,上述代码为单分支

2.双分支

public static void main(String[] args) {
        int a=10;
        if(a==10){
        	System.out.println(a);
            System.out.println("hello word");
        }else{
            System.out.println("hello hello");
        }
    }

注:在if语句中不写大括号默认只会执行一条语句

3.多分支

    public static void main(String[] args) {
        int a=10;
        if(a>10){
            System.out.println(a);
            System.out.println("hello word");
        }else if(a==10){
            System.out.println("hello hello");
        }else{
            System.out.println("hello");
        }

4.悬垂else

注:悬垂else会使代码的可读性变差

public static void main(String[] args) {
        int a=10;
        int b=20;
        if(a==10)
            if(b==10)
                System.out.println("aaa");
            else
                System.out.println("bbb");
    }

最终结果输出“bbb”,这种称为悬垂else(不要省略括号来避免发生)

5.switch语句

public static void main(String[] args) {
        int a=1;
        switch(a)
        {
            case 1:
                System.out.println("1");
                break;  //在switch中大部分语句都需要带break,如果失去那么会失去分支的特性
            case 2:
                System.out.println("2");
                break;
            default :
                System.out.println("输入错误");
                break;
        }
    }

switch中会有一条或多条case语句来选择,若都不满足则会执行default语句
switch语句中通常情况下case语句中要带break
不带break,则会继续执行到下一个break,才能跳出。

面试题:不能作为switch的参数的是??
在经过一些列测试后得出:
不能做参数的有
1.long类型
2.float类型 double类型
3.boolean类型
注:字符、字符串、枚举是可以作为参数的

三、循环结构

循环:重复的做一件事情

1.while循环

    public static void main(String[] args) {
        int i=0;
        while(i<10){      //布尔表达式
            System.out.println(i);    //代码块(一行或多行)
            i++;
        }
    }

2.for循环

public static void main(String[] args) {
        for(int i=0;i<10;i++){      //布尔表达式
            System.out.println(i);    //代码块(一行或多行)
        }
    }

执行顺序:
表达式一 -》表达式二 -》语句块 -》表达式三 -》表达式二 -》语句块 -》表达式三 -》……

3.do while循环

do while循环先执行语句块,后执行判断条件

public static void main21(String[] args) {     //do while
        int i=5;
        do {
            System.out.println(i);
            i--;
        }while(i>=0);
        //特点:至少执行一次。
    }

4.break

break 跳转,跳出循环

    public static void main(String[] args){   //break
        int i=1;
        while(i<=5){
            System.out.println(i);
            if(i==3){
                break;   //当i==3的时候,进入if,break跳出while循环
            }        //输出为;1  2   3
            i++;
        }
    }

break作用会跳出整个循环,故结果看到三后的数字全部没有进行打印

5.continue

continue 跳出本次循环

public static void main8(String[] args){
        int i=1;
        while(i<=5){
            if(i==3){    //当i==3的时候,进入if,continue跳出本次while循环
                i++;
                continue;
            }
            System.out.println(i);  //输出为:1 2 4 5
            i++;
        }
    }

continue的作用是跳出本次循环,故结果看到只有在3时未进行打印

四、输入输出

1.输出到控制台

public static void main(String[] args) {
        int a=10;
        System.out.println("hello word");
        System.out.printf("%d",a);    //格式化输出,同c语言
    }

2.从键盘输入

方法一:System.in.read()从键盘输入(不常用)

public static void main23(String[] args) throws IOException {
        System.out.println("Enter a char");    //一般不使用
        char i=(char)System.in.read();    //win键+Alt键+回车,自动提示解决方案。
        System.out.println(i);
    }

方法二:
使用Scanner这个类来做输入
Scanner在import java.util.Scanner; 这个包内

    public static void main24(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("年龄:");
        int age=scanner.nextInt();
        System.out.println(age);
        System.out.println("价格:");
        double agr=scanner.nextDouble();
        System.out.println(agr);
        System.out.println("姓名:");                //注:字符串放到最后会提前结束  bug  先输入字符后输入数字
        String agq=scanner.nextLine();
        System.out.println(agq);
    }

注:在输入的时候有一定的bug,字符串不能放到最后,不然最后一次输入时不能进行输入

next和nextLine的区别:
nextLine和next可以同时打印字符串,
next:遇到空格结束
nextLine:打印一行

上一篇:python练习题 从入门到精通 (日常更新ing)


下一篇:英语.语法.动词.时态