3.运算符和分支结构

1. 运算符
1.1算术运算符
  • +表示加法运算符

    • –表示减法运算符
    • *表示乘法运算符
    • /表示除法运算符
    • %表示取余运算符
/*编程实现算术运算符的使用*/
public class TestAri{
    public static void main(String[] args){
        //1.声明两个int类型的变量并指定初始值
        int a = 10;
        int b = 3;
        //2.计算加减乘除取余运算并打印
        int c;
        c = a + b;
        System.out.println("c ="+ c);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);
        System.out.println(a % b);
    }
}

注意事项:

​ (1)当两个整数相除时,则结果取整数部分丢弃小数部分;

​ (2)若希望保留小数部分,则具体方式如下:

​ a.将其中一个操作数强制转换为double类型再进行运算即可;

​ b.让其中一个操作数乘以1.0提升后在进行运算即可;

​ (3)0不能做除数,0.0可以做除数,但结果为无穷;

​ (4)+既可以表示字符串连接符,也可以表示加法运算符,具体区分方法:

​ 当+两端的操作数只要有一个是字符串时,则按照字符串连接符处理,否则看做加法运算符;

/*
编程使用算术运算符来实现时间的拆分
*/
import java.util.Scanner
public class TestAriSplit{
	public static void main(String[] args){
		//1、提示用户输入描述并使用变量记录	
		System.out.println("请输入正整数的秒数:");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
		//2、使用算术运算符拆分为时分秒并单独使用变量记录
		int h = num / 3600;
		int m = num % 3600 /60;
		int s =  num % 60;
		//3、打印最终的结果
		System.out.println("换算为"+ h +"小时" + m +"分钟"+ s +"秒");
	}
}
1.2关系/比较运算符

大于 > >= 大于等于 < 小于 <=小于等于 == 等于 !=不等于

所有关系运算符作为最终运算的表达式结果为boolean类型,只有true 和 false。

/*编程实现关系运算符的使用*/
public class TestRelation{
    public static void main(String[] args){
        //1.声明两个int类型的变量并指定初始值
        int a = 3;
        int b = 2;
        
        //2.使用关系运算符来判断大小关系并打印出来
        System.out.println(a > b); //true
        System.out.println(a >= b);//true
        System.out.println(a < b);//false
        System.out.println(a <= b);//false
        System.out.println(a == b);//false
        System.out.println(a != b);//true
    }
}
/*提醒用户输入一个整数,使用关系运算符判断该整数是否为负数,若是则打印true,否则打印false。*/
import java.util.Scanner;
public class Lianxi{
    public static void main(String[] args){
        //1.提醒用户输入一个整数
        System.out.println("请输入一个整数:");
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        //2.比较
        System.out.println(a < 0);
    }
}
1.3自增减运算符

++ 表示自增运算符,让变量自身的数值加1作为最新的数据;

– 表示自减运算符,让变量自身的数值减1作为最新的数据。

/*编程实现自增减运算符的使用*/
public class Testself{
    public static void main(String[] args){
        //1.声明一个int类型的变量并指定初始值
        int ia = 10 ;
        System.out.println("ia ="+ ia);
        System.out.println("----------------");
        //2.使用自增减运算符进行测试
		ia++;
        System.out.println("ia++ ="+ ia);
		ia--;
        System.out.println("ia-- ="+ ia);
		//3.见识一下++运算符放在变量两侧不同位置的区别
		++ia;
		System.out.println("ia =" + ia);
		System.out.println("----------------");
		System.out.println(ia++);//11
		System.out.println("ia =" + ia);//12
		System.out.println(++ia);//13
		System.out.println("ia =" + ia);//13


    }
}
1.4逻辑运算符

​ && 表示逻辑与运算符,相当于"并且",同真为真,一假为假。

​ || 表示逻辑或运算符,相当于“或者”,一真为真,同假为假。

​ ! 表示逻辑非运算符,相当于“取反”,真为假,假为真。

短路特性:

​ 对于逻辑与来说,当第一个操作数为假时,则整个表达式为假,此时跳过第二个操作数的判断;

​ 对于逻辑或来说,当第一个操作数为真时,则整个表达式为真,测试跳过第二个操作数的判断。

在这里插入图片描述

/*代码实现逻辑运算符的应用*/
public class Testlogic
{
	public static void main(String[] args){
		//1.设置两个整型变量并赋初值
		int a = 10;
		int b = 9;
		int c = 9;
		System.out.println((a==b)&&(b == c));

		System.out.println("------------");
		boolean d = true;
		boolean e = false;
		System.out.println(d && e);
		System.out.println(d || e);
		System.out.println(!d);
		
	}
}
/*提示用户输入一个正整数,使用逻辑运算符判断是否为三位数,若是则打印true,否则打印false*/
import java.util.Scanner;
public class sanweishujudge{
    public static void main(String[] args){
        //1.提醒用户输入
        System.out.println("请输入一个正整数:");
        Scanner sc = new Scanner(System.in);
        int d = sc.nextInt();
        //2.judge
        System.out.println((d/1000 == 0) && (d/100 > 0) && (d/100 <10));
		System.out.println(d>=100 && d<1000);
        System.out.println("------------");
		int a = 3;
		int b = 5;
		boolean c = (++a == 3)&&(++b == 5);
		System.out.println("c = "+ c); //false
		System.out.println("a = "+ a); //4
		System.out.println("b = "+ b); //5 b未进行计算
    }
}
1.5条件/三目运算符

​ 条件表达式?表达式1:表达式2

​ =>判断条件表达式是否成立

​ =>成立,则执行表达式1

​ =>不成立,则执行表达式2

/*提醒用户输入一个整数,使用关系运算符判断该整数是否为负数,若是则打印true,否则打印false。*/
import java.util.Scanner;
public class Lianxi1{
    public static void main(String[] args){
        //1.提醒用户输入一个整数
        System.out.println("请输入一个整数:");
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        //2.比较
        System.out.println(a < 0 ?"负数":"非负数");
    }
}
/*提示用户输入两个整数,并使用三目运算符找到最大值并打印*/
import java.util.Scanner;
public class compare{
    public static void main(String[] args){
        //1.提醒用户输入
        System.out.println("请输入两个整数:");
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        
        //2.比较
        System.out.println(a>b?a:b);
    }
}
1.6赋值运算符

​ (1)简单赋值

​ = 表示赋值运算符,用于使用=右侧的数据来给=左侧变量赋值,也就是覆盖变量原来数值;

​ a == 5 用于判断a是否等于5

​ 5 == a 用于判断5是否等于a,从结果来说等价,推荐使用该方式

​ a = 5 用于将数据5赋值给变量a,覆盖原来的数值

​ 5 = a 编译出错

​ (2)复合赋值

​ += 、-=、*=、…

/*编程实现赋值运算符的使用
*/
public class TestAssign{
    public static void main(String[] args){
        int a = 3;
        a += 2; //a = a + 2;
        System.out.println("a="+ a);
		System.out.println("--------");
		byte b = 3;
		b += 2;
		//b = b + 2;//TestAssign.java:10: 错误: 不兼容的类型: 从int转换到byte可能会有损失
		System.out.println("b="+b);
    }
}

如:

​ byte b1 = 5;

​ b1=b1+2; => b1 += 2; 真正等价的是:b1 = (byte)(b1+2);

1.7移位运算符(了解)

<< 表示左移运算符,用于将二进制位向左移动,右边使用0填充;

// >>表示右移运算符,用于将二进制位向右移动,左边使用符号位填充;

// >>> 表示无符号右移运算符,用于将二进制向右移动,左边使用0填充。

/*编程实现移位运算符的使用*/
public class TestMove
{
	public static void main(String[] args){
		byte b = 10;
		System.out.println("b="+b); //b=10
		System.out.println(b << 2);
		//表示将b的二进制向左移动2位
		// 10 : 0000 1010 => 0010 1000  == 40
		System.out.println(b >> 2); //000000 10 == 2
		System.out.println(b >>> 2);//2
	}
}
1.8位运算符

& 表示按位与运算符,就是按照二进制位进行与运算,同1为1,一0为0;

| 表示按位或运算符,就是按照二进制位进行或运算,一1为1,同0为0;

^ 表示按位异或运算符,相同为0,不同为1.

~表示按位取反运算符,1为0,0为1.

/*编程实现位运算符的使用*/
public class TestBit
{
	public static void main(String[] args){
		byte a = 5;   // 0000 0101
		byte b = 11;  // 0000 1011
		System.out.println(a & b); // 0000 0001
		System.out.println(a | b); // 0000 1111
		System.out.println(a ^ b);//  0000 1110
		System.out.println(~a);   //  1111 1010
	}
}
1.9运算符的优先级
  • ()的优先级极高
  • = 的优先级极低
  • */%的优先级高于±,同级的运算符从左往右依次计算
2.分支结构
2.1基本概念

​ 在某些特殊场合,需要进行条件的判断并作出选择时,则使用分支结构。

2.2if分支结构

(1)语法格式

​ if(条件表达式){

​ 语句块;

​ }

(2)执行流程

​ 判断条件表达式是否成立

​ =》如果成立,执行语句块;

​ =》不成立,则跳过语句块;

/*编程实现if分支结构模拟网吧上网过程*/
import java.util.Scanner;
public class TestIf{
    public static void main(String[] args){
        //1.提示用户输入年龄信息并使用变量记录
        System.out.println("请输入年龄:");
        Scanner sc = new Scanner(System.in);
        int age=sc.nextInt();
        //2.使用if分支结构判断是否成年,若成年则允许上网
            if(age >= 18){
                System.out.println("开心的浏览网页---");
            }
        //3.无论是否成年,则最终无奈回家
        System.out.println("无奈回家");
    }
}
/*提示用户输入两个整数,使用if分支结构找到最大值并打印*/
import java.util.Scanner;
public class Maxx{
    public static void main(String[] args){
        //1.提醒输入
        System.out.println("请输入两个数字:");
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        //2.if判断
        if(a >= b){
            System.out.println("最大值为:"+a);
        }
		if(a < b){
        System.out.println("最大值为:"+b);  
        }
		int max = a;
		if(max < b){
			max = b;
		}
		System.out.println("最大值是:"+max);
    }
}
2.3if-else 分支结构

(1)语法格式

if(条件表达式)

{

​ 语句块1;

}

else{

​ 语句块2;

}

(2)执行流程

​ 判断条件表达式是否成立,

​ =》成立,则执行语句块1;

​ =》不成立,则执行语句块2;

/*编程实现if—else分支结构的使用,模拟查询考试成绩的过程*/
import java.util.Scanner;
public class TestIfElse{
    public static void main(String[] args){
        //1.提示用户输入成绩并使用变量记录
        System.out.println("请输入成绩:");
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        //2.使用if-else分支结构判断考试成绩是否及格并给出提示
        if(a >= 60)
        {
            System.out.println("恭喜通过");
        }
        else{
            System.out.println("下学期补考");
        }
        //3.打印一句经典语录
        System.out.println("世界上最遥远的距离不是生与死,而是你在if我在else,看似相交却又永远分离!");
    }
}
/*提示用户输入一个整数,使用if-else分支结构判断该数是负数还是非负数*/
import java.util.Scanner;
public class Judge{
    public static void main(String[] args){
        System.out.println("请输入一个数字:");
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        if(a < 0){
            System.out.println("该数为负数");
        }
        else{
            System.out.println("该数为非负数");
        }
    }
}
2.4if-else if-else分支结构

(1)语法格式

​ if(条件表达式1){

​ 语句块1;

​ }

​ else if(条件表达式2){

​ 语句块2;

​ }

。。。。

​ else{

​ 语句块n;

​ }

(2)执行流程

​ 判断条件表达式1是否成立

​ =》 成立,执行语句块1;

​ => 不成立,判断条件表达式2是否成立

​ =》成立,执行语句块2;

​ =》不成立,执行语句块n;

/*编程使用elseif分支结构使用,模拟购票的过程*/
import java.util.Scanner;
public class Elseif{
    public static void main(String[] args){
        //1.提示用户输入身份信息并使用变量记录
        System.out.println("请输入您的身份信息:");
		Scanner sc = new Scanner(System.in);
        String str = sc.next();
        //2.根据不同的身份给出不同的提示
        if("军人".equals(str)){
            System.out.println("请免费乘车");
        }else if("学生".equals(str)){
            System.out.println("半价");
        }else{
            System.out.println("全价票");
        }
        //3.打印一句话
        System.out.println("开心上车");
    }
}
/*编程使用elseif分支结构使用,判断数字的过程*/
import java.util.Scanner;
public class Elseifs{
    public static void main(String[] args){
        //1.提示用户输入
        System.out.println("请输入一个数字:");
		Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
     
        if(num < 0){
            System.out.println(num +"是负数");
        }else if(num > 0)
		{
            System.out.println(num +"是正数");
        }else
		{
            System.out.println(num +"是零");
        }     
}
}
2.5 switch-case分支结构

(1)语句格式

​ switch(变量/表达式){

​ case 字面值1:语句块1;break;

​ case 字面值2:语句块2;break;

​ case 字面值3:语句块3;break;

​ 。。。。。

​ default:语句块n;

}

(2)执行流程

​ 获取变量/表达式的数值 =》 判断是否与字面值1匹配

​ =》 若匹配,则执行语句块1 =》 执行break跳出该结构

​ =》 若不匹配,则判断是否与字面值2匹配

​ =》 若匹配,则执行语句块2 =》 执行break跳出该结构

​ 。。。

​ =》 若不匹配,则执行语句块n

/*编程使用switch-case分支结构实现成绩等级的判断*/
import java.util.Scanner;
public class Score{
    public static void main(String[] args){
        //1.提示用户输入成绩
        System.out.println("请输入你的成绩:");
        Scanner sc = new Scanner(System.in);
        int s = sc.nextInt();
        //2.判断成绩所在的等级并打印出来
        /*if(s < 60){
            System.out.println("E");
        }else if(s < 70){
            System.out.println("D");
        }else if(s<80){
            System.out.println("C");
        }else if(s < 90){
            System.out.println("B");
        }else if(s<=100){
            System.out.println("A");
        }else{
            System.out.println("输入错误");
        }*/
        switch(s/10){
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("E");break;
            case 6:
                System.out.println("D");break;
            case 7:
                System.out.println("C");break;
            case 8:
                System.out.println("B");break;
            case 9:
            case 10:
                System.out.println("A");break;
            default:
                System.out.println("输入错误!!!");
                
        }
    }
}
/*编程使用switch-case分支结构实现成绩等级的判断*/
import java.util.Scanner;
public class UserSelect{
    public static void main(String[] args){
        //1.提示用户输入对应操作的数字
        System.out.println("请输入对应操作的数字:");
        System.out.println("1.显示所有用户");
        System.out.println("2.增加新用户");
        System.out.println("3.修改用户信息");
        System.out.println("4.显示删除用户");
        System.out.println("5.退出系统");
        Scanner sc = new Scanner(System.in);
        int s = sc.nextInt();
       
        switch(s){
            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("5.退出系统");break;
            default:
                System.out.println("输入错误!!!");
                
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MelodyYN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值