欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java运算符与选择语句

程序员文章站 2022-11-15 15:50:42
算数运算符概述什么是运算符:对常量和变量进行操作的符号算术运算符+,-,*,/,%,++,- -/和%的区别/:获取两个数据相除的商%:获取两个数据相除的余数注意:整数相除只能到整数。要想得到小数,就必须有浮点数据参与运算字符和字符串参与运算字符参与运算其实就是拿该字符对应的数值来操作字符串参与运算其实做的不是加法运算,而是字符串拼接,字符串和其他类型的数据做拼接,结果是字符串类型代码演示public class OperaterDemo{ publi...

算数运算符

概述

  • 什么是运算符:
    对常量和变量进行操作的符号
  • 算术运算符
    +,-,*,/,%,++,- -
  • /和%的区别
    /:获取两个数据相除的商
    %:获取两个数据相除的余数
    注意:整数相除只能到整数。要想得到小数,就必须有浮点数据参与运算

字符和字符串参与运算

  • 字符参与运算

    其实就是拿该字符对应的数值来操作

  • 字符串参与运算

    其实做的不是加法运算,而是字符串拼接,字符串和其他类型的数据做拼接,结果是字符串类型

代码演示

public class OperaterDemo{
    public static void main(String[] args) {
        int a =10;
        int b =20;

        a+=b; //a =a+b
        a-=b; //a =a-b

        System.out.println(a);

        //字符串连接符 + ,String
        System.out.println(a+b);
        System.out.println(""+a+b);
        System.out.println(a+b+"");//""+a+b与a+b+""不同
    }
}

结果

10
30
1020
30

自增自减运算符的概述和用法

概述

对变量做加1或者减1的操作

用法

如果++或者–在变量的后面,先拿出变量参与操作,后变量做++或者–

如果++或者–在变量的前面,先将变量做++或者–,后拿变量参与操作

代码演示

/*
 * 作用:就是自己+1或者-1
 * ++和--可以放在变量的前面,也可以放在变量的后面。
 * 单独使用一个变量的时候,放在变量的前面或者后面,效果一样。
 */
public class Demo04 {
    public static void main(String[] args) {
        //++ --  自增自减 一元运算符
        int a = 3;
        int b = a++; //先给b赋值,再自增
        int c = ++a; //先自增,再赋值
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

        //幂运算 正常写为2^3 但是java不支持
        double pow = Math.pow(2, 3);//Math数学类
        System.out.println(pow);
    }
}

输出结果

5
3
5
8.0

赋值运算符

赋值运算符分类

  • 基本的赋值运算符:=
  • 扩展的赋值运算符:+=,-=,*=,/=,%=
  • +=: a+=20;相当于a = (a的数据类型)(a + 20);

代码演示

public class OperatorDemo {
	public static void main(String[] args) {
		//定义变量
		int a = 10; //把10赋值给int类型的变量a
		System.out.println("a:"+a);
		
		//扩展的赋值运算符:+=
		//把运算符左边的数据和右边的数据进行运算,然后把结果赋值给左边
		//a = a + 20;
		a += 20;
		System.out.println("a:"+a);
		
		//short s = 1;
		//s = s + 1;
		
		//扩展的赋值运算符隐含了强制类型转换。
		//a+=20
		//等价于
		//a =(a的数据类型)(a+20);
		short s = 1;
		s += 1;
		System.out.println("s:"+s);
	}
}

关系运算符的概述和使用

基本使用及注意事项

  • 关系运算符包含以下内容:

    ==,!=,>,>=,<,<=

  • 关系运算符的结果都是boolean型,也就是要么是true,要么是false

  • 注意事项:

    关系运算符“==”不能误写成“=”

代码演示

/*
 * 关系运算符:
 * 		==,!=,>,>=,<,<=
 * 		关系运算符操作完毕的结果是boolean类型。
 * 
 * 注意事项:
 * 		千万不要把==写成了=
 */
public class OperatorDemo {
	public static void main(String[] args) {
		//定义三个变量
		int a = 10;
		int b = 20;
		int c = 10;
	
		//==
		System.out.println(a == b);
		System.out.println(a == c);
		System.out.println("------------");
		
		//!=
		System.out.println(a != b);
		System.out.println(a != c);
		System.out.println("------------");
		
		//>
		System.out.println(a > b);
		System.out.println(a > c);
		System.out.println("------------");
		
		//>=
		System.out.println(a >= b);
		System.out.println(a >= c);
		System.out.println("------------");
		
		System.out.println(a == b);
		System.out.println(a = b);//20,把b的值赋值给了a,并把a作为结果输出了
	}
}

逻辑运算符的概述和应用

概述

  • 逻辑运算符用于连接关系表达式,在Java中不可以写成3<x<6,应该写成x>3 && x<6

  • 逻辑运算符

    && 、|| 、!

  • 结论

    ​ &&:有false则false。

    ​ ||:有true则true。

    ​ !:非false则true,非true则false。

    ​ 特点:偶数个不改变本身。

代码演示

public class Operatordemo {
    //逻辑运算符
    public static void main(String[] args) {
        //与 (and) 或(or) 非(取反)
        boolean a =true;
        boolean b =false;

        System.out.println("a && b:"+(a&&b) );
        System.out.println("a || b:"+(a||b));
        System.out.println("!(a && b):"+(!(a&&b)));

        //短路运算
        int c =5;
        boolean d = (c<4)&&(c++<4);//前半句为假则后边c++<4不执行
        System.out.println(d);
        System.out.println(c);
    }
}

结果

a && b:false
a || b:true
!(a && b):true
false
5

位运算

//逻辑运算符,位运算
public class Demo06 {
    public static void main(String[] args) {
        /*
        * A =0011 1100
        * B =0000 1101
        -------------------

        A&B = 0000 1100  AB上下对应都为1则为1
        A/B = 0011 1101  有一个1则为1
        A^B = 0011 0001  相同为0不同为1
        ~B  = 1111 0010  都为1的为0其余为1
        *
        * 2*8=16 2*2*2*2
        * 位运算效率极高
        * <<左移  *2
        * >>右移  /2
        *
        * 0000 0000  0
        * 0000 0001  1
        * 0000 0010  2
        * 0000 0011  3
        * 0000 0100  4
        * 0000 1000  8
        *
        * */

        System.out.println(2<<3);//2左移三位为16
    }
}

三元运算符

格式

  • (关系表达式)?表达式1:表达式2;
  • 如果条件为true,运算后的结果是表达式1;
  • 如果条件为false,运算后的结果是表达式2;

代码演示

public class Demo08 {
    //三元运算符
    public static void main(String[] args) {
        // x ? y : z
        //如果x==true,则结果为y,否则结果为z
        int score = 80;
        String type = score < 60 ? "不及格" : "及格"; //必须掌握
        System.out.println(type);
    }
}

键盘录入

概述

​ 我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,把数据改进为键盘录入,提高程序的灵活性。

步骤

  1. 导包(位置放到class定义的上面)

      import java.util.Scanner;
    
  2. 创建对象

    Scanner sc = new Scanner(System.in);
    
  3. 接收数据

    int x = sc.nextInt();
    

代码演示

import java.util.Scanner;
public class ScannerDemo {
	public static void main(String[] args) {
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in);
		
		//给出提示
		System.out.println("请输入一个整数:");
		//获取数据
		int i = sc.nextInt();
		
		//把获取的数据输出
		System.out.println("i:"+i);
	}
}

选择流程控制语句

概述

• 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

• 流程控制语句分类

  1. 顺序结构
  2. 选择结构
  3. 循环结构

顺序结构

概述

​ 是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的

Java运算符与选择语句

代码演示

/*
 * 顺序结构:从上往下,依次执行
 */
public class OrderDemo {
	public static void main(String[] args) {
		System.out.println("开始");
		System.out.println("语句A");
		System.out.println("语句B");
		System.out.println("语句C");
		System.out.println("结束");
	}
}

选择结构

if语句的格式

  1. if语句格式1

    1. if语句第一种格式:
      if(关系表达式) {
      语句体
      }

    2. 执行流程:
      首先判断关系表达式看其结果是true还是false
      如果是true就执行语句体
      如果是false就不执行语句体
      Java运算符与选择语句

    3. 代码演示

    /*
     * 执行流程:
     * 		A:首先计算关系表达式的值,看是true还是false
     * 		B:如果是true,就执行语句体
     * 		C:如果是false,就不执行语句体
     */
    public class IfDemo {
    	public static void main(String[] args) {
    		System.out.println("开始");
    		
    		//定义两个int类型的变量
    		int a = 10;
    		int b = 20;
    		
    		//判断两个变量是否相等
    		if(a == b) {
    			System.out.println("a等于b");
    		}
    		
    		//定义变量
    		int c = 10;
    		if(a == c) {
    			System.out.println("a等于c");
    		}
    		
    		System.out.println("结束");
    	}
    }
    
    
  2. if语句格式2

    1. if(关系表达式) {
      语句体1;
      }else {
      语句体2;
      }
    2. 执行流程
      首先判断关系表达式看其结果是true还是false
      如果是true就执行语句体1
      如果是false就执行语句体2

Java运算符与选择语句

  1. 代码演示
/*
 * 执行流程:
 * 		A:首先计算关系表达式的值,看结果是true还是false		
 * 		B:如果是true,就执行语句体1
 * 		C:如果是false,就执行语句体2
 */
public class IfDemo2 {
	public static void main(String[] args) {
		System.out.println("开始");
		
		//判断一个数据是奇数还是偶数
		//思路:如果一个数据对2取余的结果是0,说明该数是偶数
		//定义一个变量
		int a = 100;
		//重新给a赋值
		a = 99;
		
		if(a%2 == 0) {
			System.out.println("a是偶数");
		}else {
			System.out.println("a是奇数");
		}
		
		System.out.println("结束");
	}
}
  1. if语句格式3

    1. if(关系表达式1) {
      语句体1;
      }else if (关系表达式2) {
      语句体2;
      }

      else {
      语句体n+1;
      }

    2. 执行流程
      首先判断关系表达式1看其结果是true还是false
      如果是true就执行语句体1
      如果是false就继续判断关系表达式2看其结果是true还是false
      如果是true就执行语句体2
      如果是false就继续判断关系表达式…看其结果是true还是false

      如果没有任何关系表达式为true,就执行语句体n+1
      Java运算符与选择语句

    3. 代码演示

      /*
       * 执行流程:
       * 		A:计算关系表达式1的值,看是true还是false
       * 		B:如果是true,就执行语句体1
       * 		C:如果是false,就继续计算关系表达式2的值,看是true还是false		
       * 		D:如果是true,就执行语句体2
       * 		E:如果是false,就继续计算...
       * 		F:所有的关系表达式的结果都是false,执行语句体n+1
       */
      public class IfDemo3 {
      	public static void main(String[] args) {
      		System.out.println("开始");
      		
      		//假如x和y满足如下的关系:
      		//x>=3	y=2x+1
      		//-1<=x<3	y=2x
      		//x<-1	y=2x-1
      		
      		//根据给定的x的值,计算出y的值
      		int x = 5;
      		x = 0;
      		x = -5;
      		
      		//定义变量y
      		int y;
      		
      		if(x >= 3) {
      			y = 2*x+1;
      		}else if(x>=-1 && x<3) {
      			y = 2*x;
      		}else if(x<-1) {
      			y = 2*x-1;
      		}else {
      			y = 0;
      			System.out.println("不存在这样的x的值");
      		}
      		
      		System.out.println("y:"+y);
      		
      		System.out.println("结束");
      	}
      }
      

Switch语句

格式

switch(表达式) {
  			case1:
 				语句体1;
  				break;
  			case2:
  				语句体2;
  				break;
  			case3:
  				语句体3;
  				break;
  			...
  			default:
  				语句体n+1;
  				break;
  		}

格式解释

​ 表达式:byte,short,int,char
​ JDK5以后是枚举,JDK以后可以使字符串
​ case后面的值:是用来和表达式的值进行匹配的
​ break:表示中断
​ default:所有的值都和表达式不匹配,就执行default对应的的内容

执行流程:

​ A:计算表达式的值
​ B:拿着这个值依次和case后面的值进行比对,一旦匹配,就执行对应的语句,在执行的过程中,遇到break就结束
​ C:如果所有的case都不匹配,就执行语句体n+1
Java运算符与选择语句

代码演示


import java.util.Scanner;

/*		
案例:
	根据键盘录入的数据1-7,输出对应的星期一到星期日
快捷键:对代码进行格式化
	ctrl+shift+f
*/
public class SwitchDemo {
	public static void main(String[] args) {
		//创建键盘录入数据
		Scanner sc= new Scanner(System.in);
		
		//给出提示
		System.out.println("请输入一个整数1-7");
		int weekDay = sc.nextInt();
		
		//用switch语句事先判断
		switch(weekDay) {
		case 1:
			System.out.println("星期一");
			break ;
		case 2:
			System.out.println("星期二");
			break ;
		case 3:
			System.out.println("星期三");
			break;
		case 4:
			System.out.println("星期四");
			break;
		case 5:
			System.out.println("星期五");
			break;
		case 6:
			System.out.println("星期六");
			break;
		case 7:
			System.out.println("星期日");
			break;
		default:
			System.out.println("你输入的数据有误");
			break;
		}	
	}
}

本文地址:https://blog.csdn.net/weixin_44707339/article/details/109582378

相关标签: java