java学习3

本文介绍了Java中的运算符,如自加1、关系运算符、逻辑运算符,以及赋值运算符(基本与扩展)和条件运算符(三目)。还涵盖了控制语句,如if-else、switch语句,以及循环结构(for、while、do-while)和转向语句(break、continue、return)。
摘要由CSDN通过智能技术生成

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 1case 2case 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;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值