java学习3

Posted Zephyr丶J

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习3相关的知识,希望对你有一定的参考价值。

java学习3

运算符

算术运算符(自加1)
++可以出现在变量前,也可以出现在变量后
不管出现在变量前还是后,总之在++执行之后,变量的值一定会自加1
当++出现在变量后,会先做赋值运算,再自加1
    例如:int m=10;int n=m++;// n=10
当++出现在变量前,会先进行自加1运算,再赋值

例子:int c=90;int d=80;
System.out.println(c++); //输出为90  //这里相当于赋值运算,先赋值输出,再自加1
System.ou.println(++d); //输出为81, 这里++再前,先自加1再输出

关系运算符

< > <= >= == !=
所有的关系运算符的运算结果都是布尔类型
不是true就是false,不可能是其他值 
注意:关系运算符中如果有两个符号的话,两个符号之间不能有空格

逻辑运算符

&(逻辑与) (可以翻译成并且)
|(逻辑或)(可以翻译成或者)
!(逻辑非)(取反)
&&(短路与)
||(短路或)

重点:逻辑运算符两边要求是布尔类型,并且最终的运算结果也是布尔类型,这是逻辑运算符的特点

短路与&&和逻辑与&有什么区别?
    首先这两个运算符没有任何区别,完全相同;只不过短路与&&会发生短路现象
什么是短路现象?什么时候会发生短路?
例如:int x=10; int y=11;
        System.out.println(x>y & x>y++)  //左边的x>y表达式结果已经是false了,其实整个表达式的结果已经确定是false了,按道理右边的表达式不应该执行
        System.out.println(y); //12 说明右边的表达式执行了
        
    但是如果用短路与,y的输出结果为11
短路现象:使用短路与的时候,当左边表达式为false的时候,右边表达式就不执行了,这种现象称为短路。

赋值运算符

1. 赋值运算符包括“基本赋值运算符”和“扩展赋值运算符”:基本的、扩展的
基本赋值运算符:=;
扩展赋值运算符:+=;-=;*=;%=;/=
+= 先加再赋值

*****************************
例如:byte x=100;
        x=x+1;//编译器检测到右边int类型要赋值给左边的byte,所以编译不通过
        x+=1; //编译通过,相当于x=(byte)(x+1);
        
重点:使用扩展赋值运算符的时候,永远不会改变运算结果类型

条件运算符(三目运算符)

语法格式:
    布尔表达式?表达式1 : 表达式2
执行原理:
    布尔表达式结果为true,表达式1的执行结果作为整个表达式的执行结果;反之用表达式2
    
boolean sex= true;
char c = sex?‘男’:‘女’; //c=‘男’
//前面的变量c的类型不能随便写,最终的计算结果为字符型,所以变量要用char类型

例子:sex = false;
        char c = sex? 'nan':''nv'';  //编译不通过,不兼容的类型;一个是字符,一个是字符串
        System.out.println(sex? 'nan':''nv'');  //通过,这里什么类型都可以放

字符串连接运算符

+ 运算符:
    1. +运算符在java语言中的作用。
        作用1:求和
        作用2:字符串拼接
    2.当+运算符两边都是数字类型的时候,求和
    当+运算符两边的“任意一边”是字符串类型,那么这个+会自动进行字符串拼接操作,
    3.字符串拼接结果还是一个字符串
    
    在java中定义字符串型的变量:
    String name = “jack”;
    怎么把一个变量塞到一个字符串中:
        (打印输出)口诀:加一个双引号,然后双引号之间加两个加号++,然后加号之间加变量

特殊题目

    int i=10;
    i=i++;
    System.out.println(i); //输出为10;
第二行代码相当于:
int temp=i;
i++;
i=temp;  //所以上面输出为10;  在C++中为11
	int i=10;
	i=++i;
	System.out.println(i); //输出为11;

控制语句

在java中怎么接收键盘的输入?

  public class KeyInput{
        public static void main(String[] args){
       
       //创建一个键盘扫描对象
        java.util.Scanner s = new java.util.Scanner(System.in);
        
        // 接收用户的输入,从键盘上接受一个int类型的数据
        //代码执行到这里的时候,用户可以从键盘上输入一个整数,然后回车,
        //回车之后变量userInputNum就有值了,保存的是你输入的数字
        int userInputNum = s.nextInt();    //输入整数
        String str = s.next();   //输入字符串
        }
    }
    
    
    //或者在前面导入包:
    import java.util.Scanner;
    
    public class KeyInput2{
        public static void main{String[] args}{
            Scanner s = new Scanner(System.in);
            System.out.println("欢迎使用小型迷你计算器");
            System.out.print("请输入第一个数字:")int num1 = s.nextInt();
            System.out.print("请输入第二个数字:")int num2 = s.nextInt();
            System.out.println("他们的和为:" + (num1+num2));
            }
        }

控制语句包括:
选择语句(分支语句)(条件语句):if语句;switch语句
循环语句:for; while; do while
转向语句:break; continue;return

选择语句

语法格式:
    第一种写法:
        if(布尔表达式){
            java语句;
            java语句;
        }
        
    第二种写法:
        if(布尔表达式){
            java语句;
        }else{
            java语句;
        }
        
    第三种写法:
        if(布尔表达式1){
            java语句;
        }else if(布尔表达式2){
            java语句;
        }}else if(布尔表达式3){
            java语句;
        }....                                //主要看true发生在哪个分支上
        
    第四种写法:
    	if(布尔表达式1){
            java语句;
        }else if(布尔表达式2){
            java语句;
        }}else if(布尔表达式3){
            java语句;
        }else{
            java语句;
        }
        
    1. 对于if语句,在任何情况下只能有一个分支执行,且只要有一个执行,if语句就结束了
    2. 四种语法中,凡是带有else分支的,一定可以保证会有一个分支执行,第一种和第三种没有else分支,这样可能没有分支执行
    3. 分支当中的“java语句”只有一条,大括号可以省略
    4. 控制语句和控制语句之间是可以嵌套的,但是嵌套的时候大家最好一个语句一个语句分析,不要冗杂在一起分析。

switch语句

语法格式:
    switch(值){
    case 值1:
        java语句;
        java语句;...
        break;
    case 值2:
        java语句;
        java语句;...
        break;
    case 值3:
        java语句;
        java语句;...
        break;
    default:
        java语句;
}
    以上是一个完整的switch语句:
        其中:break语句不是必须的。default分支也不是必须的
        
    switch语句支持int类型和String类型;JDK8之前只支持int;byte、short、char也可以在switch语句中,因为他们会自动进行类型转换。
     switch语句中的值与值1,值2进行比较的时候使用“==”进行比较;
     
     执行原理就是拿值与值1进行比较,如果相同就执行分支中的java语句,遇到break结束switch语句;如果不相同,就与值2进行比较....
     注意:如果分支执行了,但是分支的最后没有break,就会发生case穿透现象,即跳过比较,直接执行下面所有case中的语句,直到遇到break;
     所有的case都没有匹配,执行default
     case可以合并,即:
     case 1:case 2:case 3:
        java语句;
        break;

循环语句

for循环
    语法机制:
    for(初始化表达式;条件表达式;更新表达式){
        循环体;//循环体由java语句构成
    }
    注意:条件表达式结果必须是一个布尔型,也就是true或者false
    
    初始化表达式、条件表达式、更新表达式都不是必须的!!!

while循环

语法机制:
    while(布尔表达式){
        循环体;
    }
执行原理:
    判断布尔表达式的结果,如果为true就执行循环体。
while循环的循环次数:0~n次

do while

语法机制:
    do{
        循环体;
    }while(布尔表达式);
注意:别漏掉分号
执行原理:先执行,在判断布尔表达式,满足条件继续执行
训话次数:1~n

转向语句

break;
continue;
return;

break

1.break和continue 一个单词称为一个完整的java语句。
2.break 翻译为折断、弄断
3.break用在:
    第一个位置:switch语句中,用来终止switch语句的执行,防止case穿透现象
    第二个位置:用在循环语句中,用来终止循环的执行
    break语句会让离它最近的循环终止结束掉。
    
终止指定的循环(开发中很少见)
	a: for(int k = 0; k < 2; k++){
        b: for(int i = 0; i < 10; i++){
            if(i == 5){
                break a;  // 终止指定的循环
            }
            System.out.println(i);     //只输出一次0~4
        }
    }

continue

1.continue翻译为:继续,和break对比学习
2.continue终止当前本次循环,直接进入下一次循环继续执行
3.也可以指定循环   continue a;

以上是关于java学习3的主要内容,如果未能解决你的问题,请参考以下文章

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

学习笔记:python3,代码片段(2017)

片段(Java) | 机试题+算法思路+考点+代码解析 2023

201621123054《Java程序设计》第九周学习总结

201621123037 《Java程序设计》第9周学习总结

201521123089 《Java程序设计》第8周学习总结