java基础(第三期)

目录

一、前一期问题答案

二、java语法:运算符

三、流程控制前述

一、前一期问题答案

(1)short s = 5;     能否编译通过:不能

         s = s-2;

(2)byte b = 3;         能否编译通过:不能

        b = b +4;

(3)char c = 'a';        能否编译通过:可以编译通过

         int i = 5;

         float d = 3.15f;

        double result = c+i+d;

(4)byte b = 5;     能否编译通过:不能编译通过

         short s = 3;

         short t = s+b;

具体解释可以去看以前我写的博客(原谅我偷一下懒,有不懂的可以私信我哦!)

二、java语法:运算符

1.运算符

是一种特殊的符号,用来表示数据的运算,赋值以及比较。

2.算术运算符

具体有+(正号)、-(负号)、+(加法)、-(减法)、*(乘法)、/(除法)、%(取模)、++(自增:前)、--(自减:前)、++(自增:后)、--(自减:后)、+(连接)等运算符。

有的算术运算符不用我们来演示代码,大家也都知道是啥意思吧,所以下面具体我们来说些需要注意的算术运算符,还是老规矩用代码来解释他们!

(1)除法:

public class AirTest {
    public static void main(String[] args) {
        //除法
        int num1 = 12;
        int num2 = 5;
        int result = num1/num2;
        System.out.println(result);
    }
}

大家可能很纳闷,12/5明明不是等于2,为啥会等于2呢,那是因为他们数据类型都是int型,所以他们的结果自然也是整型了,那怎么样才能等于我们所谓的现实生活的正确答案呢

public class AirTest {
    public static void main(String[] args) {
        //除法
        int num1 = 12;
        int num2 = 5;
        double result2 = (double)num1/num2;//方法1
        double result5 = num1/(num2+0.0);//方法2
        System.out.println(result5);
        System.out.println(result2);
    }
}

呐!这就是啦,两种答案都可以的哦!这里就不细讲了!有不懂的欢迎私信我或者评论哦!

(2)除余运算

可能有很多同学不知道啥叫取余运算,那接下来我就来解释一下吧

取余运算是将一个数除以另一个数,不够除的部分就是余数,就是取余的结果。 给定一个正整数p,任意一个整数n,一定存在等式 :n = kp + r ;其中 k、r 是整数,且 0 ≤ r < p,则称 k 为 n 除以 p 的商,r 为 n 除以 p 的余数,所以,大家懂了吧 那我们还是拿代码来演示一遍哈!

public class AirTest {
    public static void main(String[] args) {
     int m1 =12;
     int n1 = 5;
        System.out.println("m1 % n1 = "+m1 % n1);
    }
}

 

呐!上述就是取余运算的代码了!

(3)++运算:这个我就要详细说一下了 首先++分两种,一种是先自减1,后运算,另一种是先运算,后运算,两种是不一样的哦,那我们接下来拿代码来演示一遍!

public class AirTest {
    public static void main(String[] args) {
        int a1 = 10;
        int b1 = ++a1;
        System.out.println("a1 = " + a1 + "b1 = "+b1 );
    }
}

由上述我讲的可知++a1是先自增,后运算,所以 a1=11,b1=11;

那a1++呢?大家可以想象出来结果嘛,那我们还是拿代码来表示一下!

public class AirTest {
    public static void main(String[] args) {
        int a1 = 10;
        int b1 = a1++;
        System.out.println("a1 = " + a1 + "b1 = "+b1 );
    }
}

 

由代码和截图可知,a1++是先运算后自增。

那我们来做两道练习题:

(1)求他们的输出

public class SignTest{
     public static void main(String []args){
           int i1=10;
           int i2=20;
           int i=i1++;
           System.out.println("i=+i");
           System.out.println("i1="+i1);
           i=++i1;
           System.out.println("i=+i");
           System.out.println("i1="+i1);
           i=i2--;
           System.out.println("i=+i");
           System.out.println("i2="+i2);
           i=--i2;
           System.out.println("i=+i");
           System.out.println("i2="+i2);
   }
}

 输出:i=  10    i1= 11

            i=  12    i1= 12

            i=  20    i2= 19

            i=  18    i2= 18

(2)输出数字153的百位、十位以及个位:

class ArtExer{
      public static void main(String []args){
             int num = 153;
             int h = num/100;//求百位
             int s = num%100/10;//求十位
             int g = num % 10//求个位
             System.out.println("百位为:" +h);
             System.out.println("十位为:" +s);
             System.out.println("个位为:" +g);
}

这就是答案了 大家可以下去做一下哈!

3.赋值运算符

具体有=、+=、-=、*=、/=、%=等运算符

那我们接下来就用代码来解释一下他们吧

(1)+=:就是会对前面所定义的数进行相加。

public class AirTest {
    public static void main(String[] args) {
        int i1 = 10;
        int j1 = 10;
        int num1  = 10;
        num1 +=2;
        System.out.println(num1);
            }
    }

 

 (2)-=:就是会对前面所定义的数进行相减。

 

public class AirTest {
    public static void main(String[] args) {
        int i1 = 10;
        int j1 = 10;
        int num1  = 10;
        num1 -=2;
        System.out.println(num1);
            }
    }

其实其他都是一样,那我们着重来说%=,相信有些人对他还不是很熟,那我们就着重来介绍一下他。

(3)%=

public class AirTest {
    public static void main(String[] args) {
     int num2 = 12;
     num2 %= 5;
     System.out.println(num2);
            }
    }

 

其实num2 %5可以等同于num2 = num2 % 5,大家就明白了吧!有不懂可以去私信我一下哈!

4.比较运算符

==、!=、>、<、>=、<=

在这里 我着重说一下==与=的区别,==是等于的意思,=在计算机看来是赋值,大家不要搞混了哦!

这一类型的运算符我们和逻辑运算符放在一起说,

那我们先来说一下逻辑运算符:

他们具体有&^(与)、|^(或)、!^(非)、&&(短路与)、||(短路或)、^(逻辑异或)

我们要主要区分&^和&&、|和||的区别 &是逻辑与的意思,&&是短路与的意思,|是或的意思,||是短路或的意思,

那我们就拿代码来解释逻辑运算符与比较运算符

public class AirTest {
    public static void main(String[] args) {
        boolean b1 = true;
        b1 = false;
        int num1 = 10;
        if(b1 &(num1++ >0)){
            System.out.println("我现在在北京");
        }else {
            System.out.println("我现在在南京");
        }
        System.out.println("num1 ="+num1);
    }
}

这就是代码和运行结果了!

那我们接下来来试一下&&看看 他和&有啥不一样哈!

public class AirTest {
    public static void main(String[] args) {
        boolean b1 = true;
        b1 = false;
        int num1 = 10;
        if(b1 &(num1++ >0)){
            System.out.println("我现在在北京");
        }else {
            System.out.println("我现在在南京");
        }
        System.out.println("num1 ="+num1);

        boolean b2 = true;
        b2 = false;
        int num2 =10;
        if(b2 &&(num2++ >0)){
            System.out.println("我现在在北京");
        }else{
            System.out.println("我现在在南京");
        }
        System.out.println("num2=" +num2);
    }
}

这就是运行截图了!看似其实没啥区别,那我来告诉他们有啥相同点和不同点:

相同点:

(1)他们的运算结果一样

(2)当符号左边是true时,二者都会执行符号右边的计算

不同点:

当符号左边是false时,&会继续执行符号右边的运算,&&不再执行符号右边的运算。

那我们接下来来讲一下|与||的区别,我们先看一下代码和运行结果

public class AirTest {
    public static void main(String[] args) {
        boolean b3 = false;
        b3 = true;
        int num3 = 10;
        if(b3 |(num3++ > 0)){
            System.out.println("我现在在北京");
        }else {
            System.out.println("我现在在南京");
        }
        System.out.println("num3 = "+num3);
        boolean b4 = false;
        b4 = true;
        int num4 = 10;
        if (b4 || (num4++ > 0)) {
            System.out.println("我现在在北京");
        } else {
            System.out.println("我现在在南京");
        }
        System.out.println("num4 =" +num4);
    }

}

 

 那我们来区分一下|与||:

相同点:

(1)他们的运算结果一样

(2)当符号左边是false时,二者都会执行符号右边的计算

不同点:

当符号左边是true时,|会继续执行符号右边的运算,||不再执行符号右边的运算。

5.位运算:

位运算说白了其实就是直接对整数的二进制进行的运算。

这个位运算有想了解的可以去查下资料,这里就不详细赘述了!

6.三元运算符

 (1)结构:(条件表达式)?表达式1:表达式2

(2)说明:

I.条件表达式的结果为boolean型

II.根据条件表达式真或假,决定执行表达式1,还是表达式2

如果表达式为true,则执行表达式1

如果表达式为false,则执行表达式2

III.表达式1和表达式2的要求是一致的

Iv.三元表达式可以嵌套使用

 那接下来,我们来观察一下代码和运行截图:

public class AirTest {
    public static void main(String[] args) {
        int n1=10;
        int n2=30;
        int n3=-43;
     int max1 = (n1>n2)? n1:n2;
     int max2 = (max1 > n3)?max1 : n3;
        System.out.println("三个数中中的最大值为:"+max2);
    }

}

那接下来 告诉你们一个小秘密哦,其实三元表达式可以改写成if_else形式的。

那接下来我们来试一下哈!

public class AirTest {
    public static void main(String[] args) {
        int m = 2;
        int n = 5;
        if (m>n){
            System.out.println(m);

        }else {
            System.out.println(n);
        }
    }

}

 

可以了 哈哈哈 但是小编要告诉你们哦 if-else形式不能改成三元表达式的形式。

所以大家会了三元表达式其实也就相当于会了两种形式的程序流程控制,那接下来废话不多说 我们开始讲程序流程控制了。

三、流程控制前述

1.流程控制有三种形式:顺序结构、分支结构、循环结构

我们今天主要讲if-else结构

2.if-else结构:

他有三种形式:

(1)

if(条件表达式){

执行代码块;

}

(2)

if(条件表达式){

执行代码块;

}else{

执行代码块;

}

(3)

if(条件表达式){

执行代码块;

}else if{

执行代码块;

}else if{

执行代码块

}else{

执行代码块;

}

那接下来 我们来演示一下这三个结构:

第一种结构:

class AirTest{
    public static void main(String[] args) {
        int heartBeats = 79;
        if(heartBeats <60||heartBeats>100){
            System.out.println("需要进一步检查");
        }
        System.out.println("检查结果");
    }
}

 第二种结构:

class AirTest{
    public static void main(String[] args) {
      int age = 23;
      if (age <18){
          System.out.println("你还可以看动画片!");
      }else {
          System.out.println("您可以看成人电影了");
      }
    }
}

 

第三种结构:

class AirTest{
    public static void main(String[] args) {
        int age = 23;
        if(age<0){
            System.out.println("您输入的年龄不合法");
        }else if(age<18){
            System.out.println("青少年时期");
        }else if(age < 35){
            System.out.println("强壮年时期");
        }else if (age <60){
            System.out.println("中年时期");
        }else if(age <120){
            System.out.println("老年时期");
        }else {
            System.out.println("您可以成仙了");
        }
    }
}

 

 好了,这就是今天的内容了,哈哈哈,突然发现夜也深了 而小编还在写稿子 可能我也享受这种感觉吧!好了 小编也要睡了 明天见了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文艺小青年111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值