java 基础三

1 运算符1.1 比较运算符比较运算符的结果都是boolean类型,也即是要么是true,要么是false。比较运算符”==”不能写成”=”。

>

package java003;/** * 2017/8/31. * 说明: */public class OperateDemo {    public static void main(String[] args) {        int a = 3;        int b = 7;        System.out.print(a>b);//false    }}

<

package java003;/** * 2017/8/31. * 说明: */public class OperateDemo {    public static void main(String[] args) {        int a = 3;        int b = 7;        System.out.print(a<b);//true    }}

==

package java003;/** * 2017/8/31. * 说明: */public class OperateDemo {    public static void main(String[] args) {        int a = 3;        int b = 7;        System.out.print(a==b);//false    }}

!=

package java003;/** * 2017/8/31. * 说明: */public class OperateDemo {    public static void main(String[] args) {        int a = 3;        int b = 7;        System.out.print(a!=b);//true    }}

>=

package java003;/** * 2017/8/31. * 说明: */public class OperateDemo {    public static void main(String[] args) {        int a = 3;        int b = 7;        System.out.print(a>=b);//false    }}

<=

package java003;/** * 2017/8/31. * 说明: */public class OperateDemo {    public static void main(String[] args) {        int a = 3;        int b = 7;        System.out.print(a<=b);//true    }}

instanceof

package java003;/** * 2017/8/31. * 说明: */public class OperateDemo {    public static void main(String[] args) {       String str = "hello";       System.out.print(str instanceof String);//true    }}

1.2 逻辑运算符&(与)、|(或)、!(非)、&&(短路与)、||(短路或)、^(异或)逻辑运算符用于连接两个boolean类型的表达式。

示例

package java003;/** * 2017/8/31. * 说明:逻辑运算符 */public class OperateDemo2 {    public static void main(String[] args) {        int x = 3;        System.out.print(x >= 2 && x <= 5);    }}

&的特点:如下图所示:表达式1&表达式2的结果。

表达式1表达式2结果truefalsefalsetruetruetruefalsefalsefalsefalsetruefalse

&运算的规律:一假全假,全真为真。

|的特点如下图所示:表达式1|表达式2的结果。

表达式1表达式2结果truetruetruetruefalsetruefalsetruetruefalsefalsefalse

|运算的规律:一真全真,全假才假。

示例:

package java003;/** * 2017/8/31. * 说明:逻辑运算符 */public class OperateDemo2 {    public static void main(String[] args) {       int x = 5;       System.out.print(x > 5 || x <6);    }}

!的特点如下图所示:!表达式

表达式结果truefalsefalsetrue

非运算的规律:非假则真,非真则假。

示例:

package java003;/** * 2017/8/31. * 说明:逻辑运算符 */public class OperateDemo2 {    public static void main(String[] args) {       int x = 5;       System.out.print(x == 5);       System.out.print(!(x==5));    }}

^如下图所示:表达式1^表达式2

表达式1表达式2结果truetruefalsefalsetruetruetruefalsetruetruetruetrue

我们知道,在计算机中一般0表示false,1表示true,当然,需要声明的是java中不是用0表示false,1表示true的,在java中,两者不等价。异或的规律:相同为0,不同为1。即异或左右两边的表达式,如果相同,就是false,不同,就是true。

package java003;/** * 2017/8/31. * 说明:逻辑运算符 */public class OperateDemo2 {    public static void main(String[] args) {       System.out.print(true^true);//false        System.out.print(true^false);//true        System.out.print(false^true);//true        System.out.print(false^false);//false    }}

1.3 位运算符<<(左移)、>>(右移)、>>>(无符号右移)、&(与)、|(或)、^(异或)、~(反码)

示例:6&3,int类型的数据在内存中是32位,此处为了方便,就没有画32位了。

package java003;/** * 2017/8/31. * 说明:位运算符 */public class OperateDemo3 {    public static void main(String[] args) {        int a = 6 ;        int b = 3;        System.out.print( a & b);//2    }}

示例:6 | 3

package java003;/** * 2017/8/31. * 说明:位运算符 */public class OperateDemo3 {    public static void main(String[] args) {        int a = 6 ;        int b = 3;        System.out.print( a | b);//7    }}

示例:6^3

package java003;/** * 2017/8/31. * 说明:位运算符 */public class OperateDemo3 {    public static void main(String[] args) {        int a = 6 ;        int b = 3;        System.out.print( a ^ b);//5    }}

示例:~3

package java003;/** * 2017/8/31. * 说明:位运算符 */public class OperateDemo3 {    public static void main(String[] args) {        int b = 3;        System.out.print( ~ b);//-4    }}

示例:3<<2 ,左移一位,乘以2。

package java003;/** * 2017/8/31. * 说明:位运算符 */public class OperateDemo3 {    public static void main(String[] args) {        int b = 3;        System.out.print( 3 << 2);//12    }}

示例:3 >>2 ,右移一位除以2,如果首个数字是0,则右移的时候,左边空位补0,;如果首个数字是1,则右移的时候,左边空位补1。因为在计算机中0表示正数,1表示负数。

package java003;/** * 2017/8/31. * 说明:位运算符 */public class OperateDemo3 {    public static void main(String[] args) {        int b = 3;        System.out.print( b >> 2);//0    }}

示例:3 >>>2,不管首位是0还是1,在左边空位都是补0。

package java003;/** * 2017/8/31. * 说明:位运算符 */public class OperateDemo3 {    public static void main(String[] args) {        int b = 3;        System.out.print( b >>> 2);//0    }}

面试题1:最有效率的方式算出2*8等于几?

package java003;/** * 2017/8/31. * 说明:位运算符 */public class OperateDemo3 {    public static void main(String[] args) {       System.out.print(2 << 3);    }}

面试题2:对两个整数变量的值进行交换(不需要第三变量)思路①,有弊端,如果两个整数的数值太大,会超出int范围,会引起精度问题。  

package java003;/** * 2017/8/31. * 说明:位运算符 */public class OperateDemo3 {    public static void main(String[] args) {       int a = 2;       int b = 3;       a = a - b ;       b = a + b;        a = b - a;       System.out.print("a="+a+",b="+b);    }}

思路②  

package java003;/** * 2017/8/31. * 说明:位运算符 */public class OperateDemo3 {    public static void main(String[] args) {       int a = 2;       int b = 3;       a = a ^ b;       b = a ^ b ;       a = a ^ b;       System.out.print("a="+a+",b="+b);    }}

1.4 三元运算符格式:(条件表达式) ? 表达式1 :表达式2;如果条件表达式为true,运算后的结果是表达式1,如果条件表达式为false,运算后的结果是表达式2。  

示例:求两个整数的最大值。

package java003;/** * 2017/9/1. * 说明:三元运算符 */public class OperateDemo4 {    public static void main(String[] args) {        int a = 3;        int b = 10;        int c = (a >= b) ? a : b;        System.out.print("最大值是:"+c);    }}

2 程序的流程控制程序的流程控制分为:顺序结构分支结构循环结构  

2.1 顺序结构示例:

package java003;import sun.applet.Main;/** * 2017/9/1. * 说明:顺序结构 */public class OperateDemo5 {    public static void main(String[] args) {        System.out.print("哈哈");        System.out.print("呵呵");        System.out.print("嘻嘻");        System.out.print("笨笨");    }}

2.2 分支语句2.2.1 分支语句之if语句格式1

if(条件表达式){     执行语句;  }

格式2

if(条件表达式){   执行语句1;}else{   执行语句2;}

格式3

if(条件表达式1){   执行语句1;}else if(条件表达式2){  执行语句2;}else{  执行语句3;}

示例:

package java003;/** * 2017/9/1. * 说明:if */public class IfDemo1 {    public static void main(String[] args) {        int x = 3;        if(x > 1){            System.out.println("正确");        }        System.out.println("结束");    }}

示例:

package java003;/** * 2017/9/1. * 说明:if */public class IfDemo2 {    public static void main(String[] args) {        char gender = '男';        if(gender == '男'){            System.out.println("性别为男");        }else{            System.out.println("性别为女");        }    }}

示例:

package java003;/** * 2017/9/1. * 说明:if */public class IfDemo3 {    public static void main(String[] args) {        int x = 3;        if(x >1){            System.out.print("a");        }else if(x >2){            System.out.print("b");        }else if(x >3){            System.out.print("c");        }else{            System.out.print("d");        }    }}

练习一:用户输入指定的数字,然后输出对应的星期几?

package java003;/** * 2017/9/1. * 说明: */public class IfTest1 {    public static void main(String[] args) {        int i = 5;        if(i == 1){            System.out.print("星期一");        }else if(i == 2){            System.out.print("星期二");        }else if(i == 3){            System.out.print("星期三");        }else if(i == 4){            System.out.print("星期四");        }else if(i == 5){            System.out.print("星期五");        }else if(i == 6){            System.out.print("星期六");        }else if(i == 7){            System.out.print("星期日");        }else{            System.out.print("输入错误");        }    }}

练习二:根据指定月份,输出对应的季节

package java003;/** * 2017/9/1. * 说明: */public class IfTest2 {    public static void main(String[] args) {        int month = 3;        if((month == 3) || (month == 4 )|| (month == 5)){            System.out.print("春季");        }else if((month == 6) || (month == 7 )|| (month == 8)){            System.out.print("夏季");        }else if((month == 9) || (month == 10 )|| (month == 11)){            System.out.print("秋季");        }else if((month == 12) || (month == 1 )|| (month == 2)){            System.out.print("冬季");        }else{            System.out.print("输入错误");        }    }}

2.2.2 分支语句之switch语句格式

switch(表达式){  case 值1:      执行语句1;  break;  case 值2:      执行语句2;  break;  ……  default:       执行语句n;  break;}    

说明:在JDK7之前,表达式可以是byte、short、int和char类型。在JDK7之后,支持String类型。  

示例:

package java003;/** * 2017/9/1. * 说明:switch */public class SwitchDemo {    public static void main(String[] args) {        int x = 3;        switch (x){            case 1:                System.out.print("x=1");                break;            case 2:                System.out.print("x=2");                break;            case 3:                System.out.print("x=3");                break;            default:                    System.out.print("呵呵");                break;        }    }}

练习:根据数字输出对应的星期几?

package java003;/** * 2017/9/1. * 说明:输入数字对应星期几? */public class SwitchTest {    public static void main(String[] args) {       int day = 3;       switch (day){           case 1:               System.out.print("星期一");               break;           case 2:               System.out.print("星期二");               break;           case 3:               System.out.print("星期三");               break;           case 4:               System.out.print("星期四");               break;           case 5:               System.out.print("星期五");               break;           case 6:               System.out.print("星期六");               break;           case 7:               System.out.print("星期七");               break;           default:               System.out.print("输入错误");               break;       }    }}

2.2.3 if和switch的区别if①对具体的值进行判断。②对区间进行判断。③对运算结果是boolean类型的表达式进行判断。  

switch①对具体的值进行判断。②值得个数是固定的。  

2.3 循环结构2.3.1 while循环格式

while(条件表达式){   执行语句;  }

示例:

package java003;/** * 2017/9/1. * 说明:while */public class WhileDemo {    public static void main(String[] args) {        int x = 1 ;        while(x <= 3){            System.out.println("x="+x);            x++;        }    }}
package java003;/** * 2017/9/1. * 说明:while */public class WhileDemo {    public static void main(String[] args) {        int x = 1 ;        while(x++ <= 3){            System.out.println("x="+x);        }    }}

练习:获取1到10的和。

package java003;/** * 2017/9/1. * 说明:计算从1到10的和 */public class WhileTest {    public static void main(String[] args) {        int sum = 0;        int i = 1 ;        while(i<= 10 ){            sum += i;            i++;        }        System.out.println("1到10的和是:"+sum);    }}

2.3.2 do-while循环格式

do{    执行语句;}while(条件表达式);

示例:

package java003;/** * 2017/9/1. * 说明: */public class DoWhileDemo {    public static void main(String[] args) {        int x = 1;        do{            System.out.println("x="+x);            x++;        }while(x <= 3);    }}

do-while语句的特点:无论条件是否满足,循环体至少执行一次。

2.3.3 for循环格式

for(表达式1;表达式2;表达式3){    执行语句;}

for循环的执行流程①表达式1只读一次,判断表达式2,为真就执行循环体,然后再执行表达式3,接着继续判断表达式2,重复整个过程,直到表达式2不成立为止。②for和while循环是可以互换的,区别在于for为了循环而定义的变量在for循环结束后就在内存里释放,而while循环使用的变量在循环结束后还可以继续使用。③最简单的无限循环:while(true){},for(;;){},无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环(常见的是if和break搭配)。  

示例:

package java003;/** * 2017/9/1. * 说明: */public class ForDemo {    public static void main(String[] args) {        int sum = 0;        for(int x = 1;x <= 10;x ++){            sum += x;        }        System.out.println("sum="+sum);    }}

2.3.4 循环结构的应用场景当对某些代码执行很多次的时候,使用循环结构来完成。

我喜欢出发。凡是到达了的地方,

java 基础三

相关文章:

你感兴趣的文章:

标签云: