5-咸鱼学Java-Java的控制语句及简单杂论

If-else

if是java中主要的控制语句
其语法为

        if (a > b) {
            a>b为真,程序执行语句
        } else 
        {
            a>b为假,程序执行语句
        }

例题

/**
 * 比较两个数大小
 * @author 焦焱
 *
 */
public class Temp {

public static void main(String[] args) {
    int a = 10;
    int b = 20;
    if(a>b)
    {
        System.out.println("a大于b");
    }
    else if(a<b)
    {
        System.out.println("a小于b");
    }
    else
    {
        System.out.println("a和b相等");
    }
}
}

结果a小于b

switch-case

语法

    //swtich 不能跟的参数 :boolean,double ,float
    switch (key) {  //key为需要匹配的对象
    case value:     //value为备选对象
        语句          //如果为value==key则执行此语句
        break;      //执行完成后跳出

    default:        //如果没有匹配的就执行default内的语句
        break;
    }

例题

public class Demo {
/**
 * 
 * @param args
 * A :80分以上
 * B :70-80
 * C :60-70
 * D :50-60
 * EF:没救了
 */
public static void main(String[] args) {
    char a = 'A';
    String reslut = null;
    switch (a) {
    case 'A':
        reslut = "80分以上";
        break;
    case 'B':
        reslut = "70-80";
        break;
    case 'C':
        reslut = "60-70";
        break;
    case 'D':
        reslut = "50-60";
        break;
    default:
        reslut = "没救了";
        break;
    }
    System.out.println(reslut);
}
}

结果 80分以上

for循环

for (初始条件;条件;每一次循环完后执行) {

}
break  当执行到这个代码的时候跳出循环。
continue 当执行这个代码的时候跳过此次循环

例题

/**
 * 乘法表
 * @author 焦焱
 *
 */
public class Temp {
    public static void chengfabiao(int n) {
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.printf("%2d*%2d=%2d    ", j, i, j * i);
            }
            System.out.println();
        }
    }
public static void main(String[] args) {
chengfabiao(9);
}
}

结果
1* 1= 1
1* 2= 2 2* 2= 4
1* 3= 3 2* 3= 6 3* 3= 9
1* 4= 4 2* 4= 8 3* 4=12 4* 4=16
1* 5= 5 2* 5=10 3* 5=15 4* 5=20 5* 5=25
1* 6= 6 2* 6=12 3* 6=18 4* 6=24 5* 6=30 6* 6=36
1* 7= 7 2* 7=14 3* 7=21 4* 7=28 5* 7=35 6* 7=42 7* 7=49
1* 8= 8 2* 8=16 3* 8=24 4* 8=32 5* 8=40 6* 8=48 7* 8=56 8* 8=64
1* 9= 9 2* 9=18 3* 9=27 4* 9=36 5* 9=45 6* 9=54 7* 9=63 8* 9=72 9* 9=81

杂论

1.final简介

    final int A = 10;//常量初始化之后不能改变其值,最好大写,提高读写性
    int b=0; //临时变量必须初值

用final修饰的成员变量表示常量,只能被赋值一次,赋值后值无法改变!
final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。
2.java中的前置++和后置++的坑
1)

int i = 10;

int j = 0;

j = i++;

System.out.println(j);

结果10
查看.class文件为
这里写图片描述
2)

int i = 10;

i = i++;

System.out.println(i);

结果10
查看.class文件为
这里写图片描述

为什么两个程序的结果都是10呢,进行解析
先进性解析.class中的代码

代码解释
bipush当int取值为-128-127的时候用次指令压栈
istore_X弹出栈顶元素存入位置为X的局部变量中
iconst_X常量int类型的X位置的元素入栈
iload_X从位置为X的局部变量中取出元素int类型的数压入栈
iinc X,Y给局部变量X位置的数加Y
getstatic获取指定类的静态域,并将其值压入栈顶
invokevirtual调用实例方法

通过上表解析两个.class文件
可以得出结论
JVM中后置++的运行方式是

1.temp = a;
2.a++;
3.a = temp;

所以i++赋值给i获得的值仍为i。
3.通过函数交换两个数

public static void main(String[] args) {
    int a=10;
    int b=20;
    int[] n ={a,b};
    swap(n);
    System.out.println("a:"+n[0]+"   b:"+n[1]);
}
public static void swap(int[] n)
{
    int temp  = n[0];
    n[0] = n[1];
    n[1] = temp;

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值