JAVA语言基础(运算符 键盘录入 流程控制 方法)

JAVA语言基础(二)

  1. 运算符
    1.1 逻辑运算符
    1.2 位运算符
    1.3 三元运算符
  2. 键盘录入
  3. 流程控制
    3.1 顺序结构
    3.2 选择结构
    3.3 循环结构
  4. 方法

1.运算符

1.1逻辑运算符

  1. 逻辑运算符:逻辑运算符有&(并),|(或), ^(异或),!(非),&&(短路并),||(短路或)
  2. 逻辑运算符一般用于连接布尔变量(boolean)或布尔变量值(true or false)
  3. 逻辑运算符运算:
    &(并):判断两边是否有 false 有false时 判断为 false 两边都是ture 判断为true
    |(或):判断两边是否有true 有ture时 判断为true 两边都是false 判断为false
    ^(异或):相同为false 不同为ture
    !(非):!true 为 false !false 为ture
  4. &(并)和&&(短路并)的区别:
    &:判断需要执行两边表达式或者值,如果左边判断为false,仍然需要执行右边的判断。
    &&:判断可执行一边的值,如果左边为false,已经可以得出逻辑为false,此时不执行右边语句。但当左边为true时,无法判断此语句逻辑为false还是true,因此仍需执行右边语句进行判断。
    最终结果一样。
  5. |(或)和||(短路或)的区别:
    |:判断需要执行两边表达式或者值,如果左边判断为true,仍然需要执行右边的判断。
    ||:判断可执行一边的值,如果左边为true,已经可以得出逻辑为true,此时不执行右边语句。但当左边为false时,无法判断此语句逻辑为false还是true,因此仍需执行右边语句进行判断。(与&和&&相反)
    最终结果一样

1.2位运算符

  1. 位运算符: &(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)
  2. 位运算符是直接对其补码进行运算
  3. 位运算符的运算:
    &:有0则0
    |:有1则1
    ^:相同则0,不同则1
    ~:按位取反 0变1 1变0
    (参考逻辑运算符)
  4. ^的特点:一个数据被另一个数据位异或两次,该数本身不变。自己位异或自己是0
    ‘<<’:左移 空位补0,被移除的高位丢弃。
    '>>'右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1。
    ‘>>>’:无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补
    运算:
    ‘<<’: 把<<左边的数据乘以2的移动次幂 例如 10<<3 结果 10*2^3=80
    ‘>>’ : 把>>左边的数据除以2的移动次幂 例如 40>>3 结果 40/2^3=5

1.3三元运算符

  1. 三元(三目)运算符的格式:
    (关系表达式) ? 表达式1 : 表达式2;
    int a=(10>20)?30:50; a=50

  2. 运算流程:
    计算关系表达式的值,如果为true, 运算后的结果是表达式1;
    如果为false,运算后的结果是表达式2;
    int a=(10>20)?30:50;
    运算流程:判断10>20为false 执行后一个表达式a=50

  3. 实例:比较两个数最大值

     public class MyPractice {
     	public static void main(String[] args) {
    		 int a=20;
    		 int b=100;
     		 int max=a>b?a:b;
      		 System.out.println("The maximum is "+max);
      }
     }
    

2.键盘录入

  1. 键盘录入步骤:
    a.导入包

    格式:
    import java.util.Scanner;
    位置:
    在class上面。

    b.创建键盘录入对象

    格式:
    Scanner scanner=new Scanner(System.in);

    c.将数据导入对象中

    格式:
    int x=scanner.nextInt();

代码实现

	import java.util.Scanner;                      		//导入包

	public class MyPractice {
		 public static void main(String[] args) {
    		System.out.println("Please input a number: ");
    		Scanner sc = new Scanner(System.in);            //创建键盘录入对象
   			 int x=sc.nextInt();				        //将数据导入对象中
    		System.out.println("The number you input is: "+x);
	 }
	}

3. 流程控制

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

3.1 顺序结构

  1. 顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
  2. 执行流程:
    从上往下,依次执行。

3.2 选择结构

  1. 选择结构有 : if结构switch结构

  2. if 的三种格式:

    if语句的格式1:
    if(比较表达式或者是boolean类型的值) {
    语句体;
    }

    if语句的格式2:
    if(比较表达式) {
    语句体1;
    }else {
    语句体2;
    }

    if语句的格式3:
    if(比较表达式1) {
    语句体1;
    }else if(比较表达式2) {
    语句体2;
    }else if(比较表达式3) {
    语句体3;
    }

    else {
    语句体n+1;
    }

  3. switch语句的格式
    switch(表达式){
    case 值1:
    语句体1;
    break;
    case 值2:
    语句体2;
    break;
    case 值3:
    语句体3;
    break;

    default:
    语句体n+1;
    break;
    }
    执行流程:扫描表达式的值 根据表达式所给的值
    执行相对应的case里的语句
    如果与所有的case后的值不匹配
    则执行default后的语句

  4. switch语句注意事项:
    a.switch表达式的取值:byte,short,int,char
    JDK5以后可以是枚举
    JDK7以后可以是String
    b.case后面跟的是要和表达式进行比较的值
    c.break表示中断,结束的意思,可以结束switch语句
    d.case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的量
    d.break尽量不省略 否则会出现case穿透 即执行完当前case语句后 会执行后续case内语句 直到switch结构内最后一条语句执行完
    e.default可以放在任意位置 建议最后

  5. if 和 switch 语句的应用:
    if语句使用场景:
    针对结果是boolean类型的判断
    针对一个范围的判断
    针对几个常量值的判断

    switch语句使用场景:
    针对几个常量值的判断

3.3循环结构

  1. 循环结构有for循环while循环 (while又分为 while和do…while)
  2. 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句
  3. for循环结构
    for(初始化表达式语句;判断条件语句;控制条件语句) {
    循环体语句;
    }
    执行流程:
    a:执行初始化表达式语句
    b:执行判断条件语句,看其返回值是true还是false
    如果是true,就继续执行
    如果是false,就结束循环
    c:执行循环体语句;
    d:执行控制条件语句
    e:回到B继续。
  4. while循环结构
    初始化条件语句;
    while(判断条件语句) {
    循环体语句;
    控制条件语句;
    }
    执行流程:
    a:执行初始化条件语句;
    b:执行判断条件语句,看其返回值是true还是false
    如果是true,就继续执行
    如果是false,就结束循环
    c:执行循环体语句;
    d:执行控制条件语句
    e:回到b继续
  5. do…while循环结构
    初始化条件语句;
    do {
    循环体语句;
    控制条件语句;
    }while(判断条件语句);
    执行流程:
    a:执行初始化条件语句;
    b:执行循环体语句;
    c:执行控制条件语句;
    d:执行判断条件语句,看其返回值是true还是false
    如果是true,就继续执行
    如果是false,就结束循环
    e:回到b继续。
  6. 注意事项:
    a:判断条件语句无论简单还是复杂结果是boolean类型。
    b. do…while循环至少执行一次循环体。
    而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
    c.知道循环次数 用for循环
    不知道循环次数 需要在循环体中设置循环变量 判断是否应该跳出循环时用while循环
  7. 控住跳转语句:
    break;
    countinue;
    return;
    a.break(中断):
    用在选择结构switch语句和循环语句中,用于跳出单层循环;
    b.continue(继续):
    用在循环语句中,用于跳出一次循环,执行下一次操作
    c.return(返回):
    return 就是退出一个方法。
    跳转到上层调用的方法。

4. 方法

  1. 方法就是完成特定功能的代码块
    在很多语言中都有函数的定义,但是在JAVA语言中,将其称之为方法。

  2. 方法的格式
    修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 …){
    方法体;
    return 返回值;
    }
    例如:
    public static void print123(){
    System.out.println(“123”);
    return 0;
    }

  3. 方法格式详细说明
    (1): 修饰符 目前使用 public static
    (2): 返回值类型 用于限定返回值的数据类型
    (3): 方法名 就是一个名称,它的存在是为了方便我们调用方法
    (4): 参数类型 限定调用方法时传入参数的数据类型
    (5): 参数名 是一个变量,接收调用方法时传入的参数。这个参数其实有一个专业的名词,被称之为形式参数,它的作用是用来接收实际参数的.
    (6): 方法体 完成功能的代码
    (7): return 结束方法以及返回方法指定类型的值
    (8): 返回值 就是功能的结果,由return带回,带回给调用者

  4. 注意事项:
    a. 方法不调用不执行
    b. 方法与方法是平级关系,不能嵌套定义
    c. 方法定义的时候参数之间用逗号隔开
    d. 方法调用的时候不用在传递数据类型
    e. 如果方法有明确的返回值,一定要由return带回一个值

  5. 方法的重载:
    方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。(方法重载就是方法名称重复,加载参数不同。)
    注意事项:
    a.方法名一定要相同。
    b.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
    1)如果参数个数不同,就不管它的参数类型了
    2)如果参数个数相同,那么参数的类型必须不同。
    c.方法的返回类型、修饰符可以相同,也可不同。

  6. 方法重载举例:
    void receive(int i) {
    System.out.println(“Received one int data”);
    System.out.println(“i=”+i);
    }

    void receive(float f) {
    System.out.println(“Received one float data”);
    System.out.println(“f=”+f);
    }

    void receive(String s) {
    System.out.println(“Received a String”);
    System.out.println(“s=”+s);
    }

    public static void main(String [] args){
    MethodOverloading m = new MethodOverloading();
    m.receive(3456);
    m.receive(34.56f);
    m.receive(“方法重载”);
    }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值