中双目运算符_运算符与选择结构

本文详细介绍了Java中的运算符,包括算术运算符、赋值运算符、比较运算符、逻辑运算符和条件运算符。特别讨论了++和--运算符的用法,以及三目运算符的应用。此外,还讲解了Scanner类用于键盘输入的方法,如next()和nextLine()。在选择结构部分,解释了if语句和switch语句的使用规则及其注意事项,强调了break和default的作用。
摘要由CSDN通过智能技术生成

运算符与选择结构

一、运算符

1、算术运算符

分类

abe07dc6cfd63baa4b39a83e73032c0b.png

+运算符

1)、单目运算,表示正号,如: +5;

2)、双目运算符,表示加法,如: 5 + 6;

3)、字符串操作符,表示拼接、连接的含义,如: "a"+"b"的结果是“ab”

-运算符

1)、单目运算,表示负号,如: -5;

2)、双目运算符,表示减法,如: 5 - 6;

++--运算符

++ 运算,变量自己增长1;

-- 运算,变量自己减少1,用法与`++ 一致。

1)、独立运算:前++ 和 后++没有区别

变量前++ :例如 ++i

变量后++ :例如 i++

变量前-- :例如 --i

变量后-- :例如 i--

2)、混合运算:

  • 和其他变量放在一起,前++后++就产生了不同。
  • 变量前++ :变量a自己加1,将加1后的结果6赋值给b,也就是说a先自增。a和b的结果都是6
 public static void main(String[] args) {
  int a = 5;
  int b = ++a;
  System.out.println(a);//计算结果是6
  System.out.println(b);//计算结果是6
 }
  • 变量后++ :变量a先把自己的值5,赋值给变量b,此时变量b的值就是5,变量a自己再加1。a的结果是6,b的结果是5
 public static void main(String[] args) {
  int a=5;
  int b = a++;
  System.out.println(a);//计算结果是6
  System.out.println(b);//计算结果是5
 }

注:前置++前置--)都是先自身加1(减1),再参与运算或赋值;反之,先参与运算或赋值,再自身加1(减1)。

2、赋值运算符

a1f74142b2eda438d520397133275d79.png
  • 赋值运算符,就是将符号右边的值,赋给左边的变量。
 public static void main(String[] args){
     int i = 5;
     i+=5;//计算方式 i=i+5 变量i先加5,再赋值变量i
     System.out.println(i); //输出结果是10 
 }

3、比较运算符

46bc824b5571942a4c684ac34199ba06.png
  • 比较运算符,是两个数据之间进行比较的运算,运算结果都是布尔值true或者false
public static void main(String[] args){
  char ch1='a';
  char ch2='b';
  System.out.println(ch1<=ch2);
 ​
  String name1="Java";
  String name2="李四";
  System.out.println(name1!= name2);
  System.out.println(ch1+1 != ch2);
 }
  • 练习:对下面代码进行注释
 public static void main(String[] args){
  double d=10/3;  
  int a=10/3;
  System.out.println(a==d);   
  System.out.println(a);  
  System.out.println(d);
 ​
  d=10/3.0;  
  a=10/3;
  System.out.println(a==d);
  System.out.println(a);
  System.out.println(d);
  System.out.println("hello"!="hello");
 }

2945752ecb68aa81697c1f282e92414d.png

4、逻辑运算符

0ec9e7f255a6b522b424c93b8e171084.png
 public static void main(String[] args){
         System.out.println("----------------&---------------");
         System.out.println(true&false);  //false
         System.out.println(false&false); //false
         System.out.println(false&true); //false
         System.out.println(true&true); //true
         
         System.out.println("----------------|---------------");
         System.out.println(true|false);  //true
         System.out.println(false|false); //false
         System.out.println(false|true); //true
         System.out.println(true|true); //true
         
         System.out.println("----------------!---------------");
         System.out.println(!false);  //true
         System.out.println(!true); //false
         
         System.out.println("----------------^---------------");
         System.out.println(true^false);  //true
         System.out.println(false^false); //false
         System.out.println(false^true); //true
         System.out.println(true^true); //false
         
         System.out.println("----------------&&---------------");
         System.out.println(true&&false);  //false
         System.out.println(false&&false); //false
         System.out.println(false&&true); //false
         System.out.println(true&&true); //true

0fa2464d06381359b0f055413522d450.png

5、条件运算符

条件运算符可以叫做三目运算符,或者三元运算符。

格式

 条件表达式 ? 值1 : 值2

执行流程

1、执行条件表达式,计算其值为true还是false

2、如果为true,返回值1,否则,返回值2。

练习:

使用条件表达式,求两个数中最大的数。

 //比较2个数的大小 ,求最大的数
 public static void main(String[] args){
         
         int a = 5;
         int b = 10;
         int max = a > b ? a : b;
         System.out.printf("%d和%d中最大的数为:%d n",a,b,max);
 }

二、Scanner

Scanner类:可以接收键盘输入的内容。

使用Scanner:

1、导入包。

使用Scanner需要导入包java.util.Scanner

2、创建Scanner类的变量 | 引用

 Scanner sca = new Sacnner(System.in);

3、使用变量|引用调用Sanner类中的功能

f699b450290f9990e81abab225c9f8b0.png

4、测试next()

 import java.util.Scanner;
 public class testScanner{
     
     public static void main(String[] args){
         //1.导包
         //2.创建某个类型的变量|引用
         Scanner sc=new Scanner(System.in); 
         //3.使用功能
         String s=sc.next();
         System.out.println(s);
     }
 }

f456f9446093bf4c0355cabd48d7bc1b.png

5、测试nextLine()

 import java.util.Scanner;
 public class testScanner{
     
     public static void main(String[] args){
       //1.导包
         //2.创建某个类型的变量|引用
         Scanner sc=new Scanner(System.in); 
         //3.使用功能
         String s=sc.next();
         System.out.println(s);
         //测试nextLine()
         s = sc.nextLine(); 
         System.out.println(s);
     }
 }

2be6485075fff8d4c4f47f469a3f4b97.png

观察发现,next()遇到空格后不再接收字符,但是等遇到回车才结束;nextLine()会接收一行所有字符,包括空格和回车。nextLine()接收到next()未接收的字符asd和回车,直接结束,并打印,未进入等待输入状态。

6、测试close()

 import java.util.Scanner;
 public class TestScanner{
     
     public static void main(String[] args){
         //1.导包
         //2.创建某个类型的变量|引用
         Scanner sc = new Scanner(System.in); 
         //3.使用功能
         String s = sc.next();
         System.out.println(s);
         //测试nextLine()
         s = sc.nextLine(); 
         System.out.println(s);
         sc.close();
         
         //创建某个类型的变量|引用
         Scanner reader = new Scanner(System.in);
         String str = reader.nextLine(); //抛异常
         System.out.println(str);
     }
 }

1b1afac2ea94ca6196c304d2aa2ea146.gif

注意:一定在Scanner类使用完毕以后再关闭,否则重新开启也无法使用。

三、Random

45597f8ff5d52454542e40d6c9ad5ab5.png

1、[0,max]

 //[0,5]
 i=ran.nextInt(6);
 //注:引用.nextInt(max+1) 

2、[min,max]

 //[3,5]   
 i=ran.nextInt(5-3+1)+3;
 //注:引用.nextInt(max-min+1)+min

练习:

 import java.util.Random;
 public class Random11{
     
     public static void main(String[] args){
         //1.导包
         //2.创建Random类型的变量|引用
         Random ran=new Random();
         //3.使用功能
         int i=ran.nextInt();
         //[0,5]
         i=ran.nextInt(6);
         System.out.println(i);
         
         //[3,5]   
         i=ran.nextInt(5-3+1)+3;
         System.out.println(i);
         
         double d=ran.nextDouble()+3;
         System.out.println(d);
         
         //三个数求大小
         int a=5;
         int b=10;
         int c=8;
         int max=a>b ? a : b;
         max=max>c ? max : c;
         System.out.println(max);
         
         
         max=a>b & a>c ? a : (b>c ? b : c); 
         System.out.println(max);
     }
     
 }
 ​

四、选择结构

1、if语句

 单分支|单选泽
     if(条件表达式){
          语句体;
     }
     
 //单选
         if(false)
             System.out.println("现在5点了,还有半个小时就下课了!!!哈哈哈~~~");
         
         
         System.out.println("if语句结束以后");
  • 条件表达式必须值为boolean类型的表达式
  • 如果条件表达式结果为false,就不执行跳过整个if结构
  • 如果条件表达式结果为true,执行{}中的语句体
 双分支|双选择
     if(条件表达式){
         语句体1;
     }else{
         语句体2;
     }   
 ​
 //双选
     int a=0;
     if(a>0){
         System.out.println("a>0");
     }else{
         if(a==0){
             System.out.println("a=0");
         }else{
             System.out.println("a<0");
         }
     }
 多分支|多选择:
     if(条件表达式1){
         语句体1;
     }else if(条件表达式2){
         语句体2;
     }else if(条件表达式3){
         语句体3;
     }
     ....
     else{
         以上条件都不满足执行的内容
     }
 ​
 //多选择
     if(a>0)
         System.out.println("a>0");
     else if(a==0)
         System.out.println("a=0");
     else
         System.out.println("a<0");
  • 无论是多选还是单选,双选,只要语句体只有1句,前后的{}可以省略,不推荐使使用,写上{}有利于后期增加语句体。

2、switch

语法

 switch语句:定值判断
         
     switch(表达式){
         case 值1:
             语句体1;
             break;
         case 值2:
             语句体2;
             break;
         ....
         default:
             语句体n;
             break;
     }

练习

 public static void main(String[] args){
     String str="紫灯";
     switch(str){
         case "红灯":
             System.out.println("红灯停!");
             break;
         case "绿灯":
             System.out.println("绿灯行!");
             break;
         case "黄灯":
             System.out.println("黄灯等一等!");
             break;
         default:
             System.out.println("请输入合格的灯(红灯、绿灯、黄灯)!!");
             break;
     }
 ​
 //default的位置可以改变,不写break会发生case穿透
     switch(str){
         default:
             System.out.println("请输入合格的灯(红灯、绿灯、黄灯)!!");
             break;
         case "红灯":
             System.out.println("红灯停!");
         case "绿灯":
             System.out.println("绿灯行!");
         case "黄灯":
             System.out.println("黄灯等一等!");
             break;
     }
 }

3、注意事项

  • switch的表达式|变量支持类型: byte,short,int,char,枚举字符串
  • case:表达式的结果与case后的值进行判断,如果相同,执行对应的语句体;
  • break:结束这个switch语句,如果没有break会发生case穿透
  • default: 与else作用一致,以上case都不满足条件,执行default中的语句体
  • 可以在switch语句中的任何位置,改变位置注意break的问题
  • if语句可以做区间判断,也可以做定值判断,switch 只能做定值判断
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值