java-day03

流程控制

顺序结构(代码顺序执行)

在没有其他结构的干扰下,代码从上到下依次执行

分支结构

在代码中,执行某些代码需要满足一定的条件,那就需要使用分支结构

常用的分支语句:if - else结构

语法1:

if(表达式结果是true,那么执行大括号里面的代码块){

代码块

}

语法2:如果表达式为true,执行代码块1,如果表达式为false,执行代码块2

(这种结构的分支,都可以转化为三元表达式)

if(表达式){

代码块1

}else{

代码块2

}

语法3:哪个表达式为true就执行哪个,否则执行else

if(表达式1){

代码块1

}else if(表达式2){

代码块2

}else if(表达式3){

代码块3

}else{

代码块4

}

if(score1>90){
            if (score2>90){
                System.out.println("奖励1000元");
            }else if(score2>80){
                System.out.println("奖励500元");

            }else{
                System.out.println("没有奖励");
            }
        }else if (score1>80){
            if(score2>90){
                System.out.println("奖励500元");
            }else{
                System.out.println("没有奖励");
            }
        }else{
            System.out.println("没有奖励");
        }

开关语句switch

语法:判断switch后面变量的值,满足值1 执行代码块1,满足值2,执行代码块2,否则执行default

switch(变量){

case 值1:

代码块1;

break;

case 值2:

代码块2;

break;

case 值3:

代码块3;

break;

default:

}

public static void main(String[] args) {
        //接收用户输入的数(1-5),返回对应的的事情
        //1、查询所有用户 2、增加用户 3、删除用户 4、修改用户 5、查询单个用户
        Scanner scan =new Scanner(System.in);
        System.out.println("请输入数字1-5,选择对应的操作");
        int num = scan.nextInt();
        switch (num){
            case 1:
                System.out.println("查询用户");
                break;
            case 2:
                System.out.println("增加用户");
                break;
            case 3:
                System.out.println("删除用户");
                break;
            case 4:
                System.out.println("修改用户");
                break;
            case 5:
                System.out.println("查询单个用户");
                break;
            default:
                System.out.println("输入的数字不正确");
        }
    }

注意:

1、switch后面可以是byte short int char string ,以及对应的包装类,不能使用long或者浮点型

2、case后面的break可以省略,但是会发生穿透现象

3、case 后面的值不能是变量,只能是常量,而且catch后面的值不可重复

4、default可以删除,但是不满足的情况,就无法执行

循环结构

循环,就是将重复性的代码内容整理起来,利用特殊性的语法,完成重复性操作,从而让代码变的更加简单

循环需要的条件:

1、循环需要结束条件

2、循环体代码需要变换

while循环

语法:如果表达式的结果为true,就会执行代码块的内容

while(表达式){

代码块

}

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

        while(true) {
            System.out.println("请输入数字1-6,选择对应的操作");
            System.out.println("1 查询用户");
            System.out.println("2 增加用户");
            System.out.println("3 删除用户");
            System.out.println("4 修改用户");
            System.out.println("5 查询单个用户");
            System.out.println("6 退出查询");
            int num = scan.nextInt();

            switch (num) {
                case 1:
                    System.out.println("查询用户");
                    continue;
                case 2:
                    System.out.println("增加用户");
                    continue;
                case 3:
                    System.out.println("删除用户");
                    continue;
                case 4:
                    System.out.println("修改用户");
                    continue;
                case 5:
                    System.out.println("查询单个用户");
                    continue;
                case 6:
                    System.out.println("退出查询");
                   break;
                default:
                    System.out.println("输入的内容不对");
                    continue;
            }
            break;
        }
    }

do-while循环

语法:跟while循环的用法类似,相比来说,需要先执行一次代码块,然后再去做循环判断

do{

代码块;

}while(循环条件表达式)

public static void main(String[] args) {
        //使用do-while 输出1-10
        int i=1;
        do{
            System.out.println(i);
            i++;
        }while(i<=10);
//        //完成1-100的偶数和
        int j=0;
        int sum=0;
        do{
            if(j%2==0){
                sum=sum+j;
            }
            j++;

        }while(j<=100);
        System.out.println(sum);

    }

for循环

语法:指定的次数循环

for(初始化语句a;判断条件b;控制条件c){

代码块;

}

执行流程:

1、先执行初始化语句a

2、再执行判断条件b,如果b的结果为true,执行代码块,如果条件为false,循环结束

3、执行控制条件c

4、再执行b,依次循环

 //输出所有的水仙花数
        //水仙花是一位3位数
        //数字=个位数的三次方+十位数的三次方+百位数的三次方
        int count=0;
        for(int k=100;k<1000;k++){

            int a=k%10;//个位数
            int b=k/10%10;//十位数
            int c=k/10/10;//百位数
            if (k==a*a*a+b*b*b+c*c*c){
                count++;
                System.out.println(k);

            }

        }
        System.out.println(count);

    }
 // 声明for 循环,从1输出到10
        for (int i=1;i<=10;i++){
            System.out.println(i);
        }
        //使用FOR循环求1-100的和
        int sum1=0;
        for (int i=0;i<=100;i++){
            sum1=sum1+i;
        }
        System.out.println(sum1);
        //求1-100的偶数和
        int sum2=0;

        for(int j=0;j<=100;j++){
            if(j%2==0){
                sum2=sum2+j;
            }
        }
        System.out.println(sum2);

for循环的嵌套使用

/*输出一个图形
          ******
          ******
          ******
          ******
         */
        for(int i=0;i<=4;i++){
            for(int j =0;j<=6;j++){
                System.out.print("*");
            }
            System.out.println( );
        }

 //使用for循环嵌套完成一个乘法口诀表
for(int i=1;i<=9;i++){
            for(int j=1;j<=i;j++){
                System.out.print(i+"*"+j+"="+(i*j)+"\t");
            }
            System.out.println( );
        }

break

break只用在switch和循环语句中

 public static void main(String[] args) {
        lable1:
        for(int i=0;i<5;i++){
            lable2:
            for(int j=0;j<4;j++){
                if(j==2){
                    //break;//默认状态,跳出内部 循环
                    //break lable1;跳出外层
                    break lable2;//跳出内层

                }
                System.out.println("*");
            }
        }
        System.out.println( );
    }

continue

一般用在循环中,表示跳出当次循环

public static void main(String[] args) {
    //有10个学生,循环录入学生的成绩,录完之后统计80分以上的占比情况
    int count =0;
    Scanner scan =new Scanner(System.in);
    for(int i=1;i<=10;i++){
        System.out.println("请输入第"+i+"个学生的成绩");
        int score=scan.nextInt();
        if(score<80){

            continue;
        }
        count++;
    }
    System.out.println("大于80分以上的人数为"+ count);
    System.out.println("80分以上的占比情况为:"+((double)(count)/10)*100+"%");
}

return

用在方法中,一般用来结束方法

public static void main(String[] args) {
        for(int i=1;i<10;i++){
            if(i==5){

                System.out.println("退出");
                //break;//结果为:1 2 3 4 退出 运行结束
                //continue;//结果为:1 2 3 4 退出 6 7 8 9 运行结束
                return;     //结果为: 1 2 3 4 退出

            }
            System.out.println(i);
        }
        System.out.println("运行结束");

    }

增强for循环

语法:一般用来遍历数组或者集合中的内容

for(数据类型 变量:数据集合){

}

引用数据类型:string 数组 类

创建方式:

数据类型 变量名=new 数据类型();

比如:Scanner scan =new Scanner(System.in);

为什么叫引用数据类型?

因为,引用类型在创建的时候,都是创建在堆空间中,然后堆空间中的区域的地址指向栈中的变量,

这种地址赋值方式,就是一种引用方式,所有,称为引用类型

首先把Class文件从磁盘里读取进方法区,然后把main方法压入栈区

基本数据类型的变量名在栈区,变量名的值存放在方法区的常量池

string类型

是字符串类型,用双引号引起来的内容就是字符串,它是一个比较特殊的引用类型

可以通过new关键字来创建,也可以类似于基本类型的赋值方式

public static void main(String[] args) {
        //方式1:类似于基本数据类型
        String s1="hello";
        System.out.println(s1);
        //方式2:类似于引用数据类型
        
        String s2=new String("hello");
        System.out.println(s2);
        //==比较的是地址  equals比较的是内容
        System.out.println(s1==s2);//false
        System.out.println(s1.equals(s2));//true
        String s3="hello";
        System.out.println(s1==s3);//true

内存划分初识

Java程序执行的时候,会将内存分为栈空间、堆空间

栈空间特点 :

1,自动分配,不需要程序员申请

2,栈空间存取数据的效率较高

3,栈空间的数据 按照 先进后出的方式管理

4,栈空间存储空间较小,不能存放太多的数据

5,JVM将基本类型的数据存放在栈空间

堆空间特点 :

1,需要程序员申请,通过new关键字申请

2,堆中存取效率相对较低

3,堆空间中存放数据是随机分配位置,所以在申请了空间后,会得到一个地址值,指向变量

4,堆空间存放数据的空间比较大,能存放大量的数据

5,引用类型的数据一般都存放在堆空间中

方法:

Java是面向对象的语言,对象都会有一些方法,方法其实就是这些类可以做的事情,也称为函数

方法中,一般都会写一些执行某些功能的代码,将来可以调用这个方法,从而完成某些想要的内容

语法:

修饰符 返回值类型 方法名(参数列表){

代码块

return 返回值;

}

修饰符:暂时的写法 public static

返回值类型:void表示没有返回,也可以是数据类型(基本类型和引用类型)

方法名:自己取的名字,遵循标识符命名规范

参数列表:将来调用这个方法的时候,是否需要传入值进行运算,如果不需要,可以不行

参数的定义方式 数据类型+变量名;

代码块:方法中的执行功能

return:和返回值类型挂钩,有返回值类型,需要return对应类型的值,如果没有返回值类型,

return可以省略

//写一个方法,调用之后,可以传入两个整数,并完成两个整数的求和
    public static int add(int a,int b){
        int sum=a+b;
        return sum ;
        
    }
    public static void main(String[] args) {
        //调用方法,声明一个变量去接收返回的值
       int result= add(10,20);
        System.out.println(add (10,20));
        System.out.println(result);
        

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值