今天学习Java的运算符和几种基础的语句

news/2024/5/19 8:06:22

先记录一下之前没有注意到的一些东西

valueOf和parseInt的区别

public static Integer valueOf(String s) throws NumberFormatException 返回值得类型为包装
类,底层实现其实就是parseInt
在这里插入图片描述

public static int parseInt(String s) throws NumberFormatException 返回值类型为原生类型

数值与字串的转换
数值转换为字串有3种方法: Strings=String.valueOf(i)=Integer.toString(i)=””+i;
字串与数值的转换
字串转为数值型有2种方法: int i=Integer.valueOf(s).intValue(); int i=Integer.parseInt(s) / (s,int进制)

常量

常量就是指在程序执行期间其值不能发生变化的数据,常量是固定的。如整型常量123,实型常量1.23,字符常量’A’,布尔常量true等

Java中的常量用final来实现,例如final double PI=3.14;注意声明常量的时候可以不赋值,而在构造器结构中赋初值,但是若在声明时同时进行了赋值,则不可以在初始化结构中赋值了。

表达式

表达式就是运算符、操作数以及方法调用的序列,用来说明某个计算过程并返回计算结果

按照运算符功能来分,基本的运算符分包括算术运算符、关系运算符、位运算符、条件运算符等
在这里插入图片描述

接下来是今天的运算符和结构编程

算术运算符
+、-、*、/、%、++、- -

整除:参与运算的双方都是整数 10/3=3而不是3.33333

10./3=3.333…这里由于10.是浮点数,则3会自动转换为大类型并参与计算,所以最终是 10.0/3.0的计算
结果
在这里插入图片描述
计算次序为先乘除后加减,如果优先级一致,则自动从左向右进行计算 10+2*5=20

%求余(取模) 10%3=1实际就是10除以3求余数

在这里插入图片描述

注意:求余计算可以用于浮点数。浮点数没有整除的概念,只能针对计算结果进行强制类型转换(窄化操作)

在这里插入图片描述

++和- -是单目运算符
i++等价于i=i+1
i–等价于i=i-1
在这里插入图片描述
i++是先取值后计算,++i是先计算后取值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

比较运算符
、>、<、>=、<=、==、!= 用于判断两个数据之间的大小关系,计算结果为boolean,如果成立返回为true,否则为false
在这里插入图片描述

==和=的区别
k=100;这是赋值运算符,意思是将=右边的计算结果储存在=左边的变量中

k==100这是比较计算,意思是判断k是否值为100;如果是则返回true,否则false

!=意思是判断是否不等于,表示如果相等时返回false,否则返回true

由于浮点数无法精确存放,所以判断k==1.0这个写法是错误的

正确写法: a-b的绝对值小于1e-6

Java提供了一个工具类Math

Math中包含一些常见的数学计算的实现,例如三角函数、反三角函数等,

  • abs()的方法实现求绝对值

Math.abs(d1-1)<1e-6 判断浮点类型的变量d1的值是否为1
在这里插入图片描述

  • floor(double):double 从小到大逼近参数最大整数
  • ceil(double):double从大到小逼近参数最小整数
  • round(double):double 四舍五入,计算时和符号无关
  • pow(double a, double b):double 计算a的b次方
  • sqrt(double a):double 针对a进行开根号计算

逻辑运算符
&&与、 ||或、 !非

表达多个条件之间的关系。例如年龄大于等于18并且年龄小于65
在这里插入图片描述

计算规则:
&& 同真则真,其余为假
|| 同假则假,其余为真
! 非真则假,非假则真

注意:逻辑计算支持短路操作
在这里插入图片描述

&&:与运算,含义是两个条件必须同时成立,可以翻译为并且

年龄大于等于18并且年龄小于65: age>=18 && age<65

||:或运算,含义是两个条件中成立一个即可,可以翻译为或者

年龄小于18岁或者年龄不小于65 : age<18 || age>=65

算法规则:同假则假,否则为真

!:非运算,含义是不是,用于对某个条件进行否定

年龄不小于18
写法1:age >=18
写法2: !(age<18)
算法规则:非真则假,非假则真

短路运算
例如A && B:如果条件A为false,则不会执行B,因为根据运算规则结果一定是false,和B的值没有关系
A||B:如果条件A为true,则不会执行B,因为格局运算规则结果一定是true,和B的值没有关系 考核中主要配置++/–进行测试

位运算符

&按位与、|按位或、^按位异或、~按位取反、<<左移位 、 >>右移位,空位置补符号位上的值、>>>无符号右移位,空位置补0
注意:为运算符不支持短路操作
在这里插入图片描述
赋值运算符

=,+=,-=,*=,/=

int k=100; 含义是将100赋值存储在k对应的存储单元中

k=k+3可以简写为k+=3

-= */ /=类似
在这里插入图片描述
三目条件运算符
规则是完全一致的,使用的形式是: x ? y:z;

计算规则

  • x是一个条件表达式
  • 如果x计算结果为true,则返回y表达式的结算结果
  • 否则返回z表达式的计算结果

其他运算符

  • 对象运算符instanceof用来判断一个对象是否是某一个类或者其子类的实例。如果对象是该类或者其子类的实例,返回ture;否则返回false

在这里插入图片描述

  • 点.运算符用于访问对象实例或者类的类成员函数
    在这里插入图片描述
  • new运算符 用于创建一个新的对象或者新的数组
    在这里插入图片描述

结构化编程

结构化程式设计Structured programming是1960年代开始发展起来的一种编程典范。它采用子程序、程式码区块、for循环以及while循环等结构来取代传统的goto。希望借此来改善计算机程序的明晰性、品质以及开发时间,并且避免写出面条式代码。

结构化程序设计原则

自顶向下、逐步求精、模块化

结构化程序设计还有一个重要的规定,那就是只能使用顺序结构、选择结构、循环结构这三种基本结构(或由它们派生出来的结构)来定义程序的流程

条件分支语句

Java语言提供了两种判断语句:if语句和switch语句。这两种语句用于实现判断,当符合某些条件时执行某段代码,否则将不执行

语法规则1:
在这里插入图片描述
要求用户输入学生性别,如果输入true则显示男,其它不回显
在这里插入图片描述

语法规则2:一定会执行其中的一个分支,不可能出现都不执行或者都执行的情况
在这里插入图片描述
要求用户输入学生性别,如果输入true则显示男,其它显示女
在这里插入图片描述
语法3:多个条件多个分支
在这里插入图片描述
需求:要求输入学生成绩(假设成绩都是整数),如果>85显示优秀,如果>70显示良好,如果>60显示及格,否则显示不及格

在这里插入图片描述
if/if…else/if…else if…else允许嵌套

需求:要求输入学生成绩(假设成绩都是整数)和学生性别,如果男生>60显示你是个猪?,如果小于60显示你连猪都不如;如果女生>60显示还可以阿,如果小于60显示继续加油啊

在这里插入图片描述

标准输出

System.out.println(obj) 参数obj可以是任意类型的数据,实际上其它类型的数据是自动转换为字符串类型进行输出显示

键盘数据录入

Scanner用于实现接收用户的键盘录入数据

Scanner sc = new Scanner(System.in);

int i = sc.nextInt();从键盘上接受一个用户录入的整数
在这里插入图片描述
在这里插入图片描述

类似的方法还有用于接收浮点数的s.nextDouble等多种

开关分支语言

多个分支的等值判断时,使用switch比if使用方便

在这里插入图片描述
在这里插入图片描述

重点的语法规则:
1、switch后面的表达式允许的数据类型? 允许byte\short\int,但是不允许long类型
2、允许字符类型和字串类型[特殊点,要求JDK1.7+],究其本质是比较字符串的hashcode值
3、枚举类型

循环结构

循环就是重复做某一件事情。在Java程序中,循环控制即在某一情况下,控制程序重复执行某一条或多条语句,直到遇到终止条件为止

循环语句也称迭代语句,在Java语言中存在的while、for和do-while循环语句

while循环

while是Java中最基本的循环语句,满足条件才执行循环体,如果不满足条件则不执行。所以有可能循环体一次都不执行。

语法格式: while (继续循环的条件) { 循环所执行的代码; }
在这里插入图片描述

do-while循环

do-while 循环执行某些语句,直到指定的条件为假。此循环确保循环体至少执行一次。

语法格式: do{循环所执行的逻辑;}while(继续循环的条件);

样例:计算1+2+3+…+100=?
在这里插入图片描述
for循环
for 循环主要用于按预定的次数执行语句或语句块

语法: for(语句1,一般用于初始化循环控制变量; 语句2,是循环继续执行的条件; 语句3,是每次循环执行结束后必须执行的语句){ 循环体语句; }

样例:计算1+2+3+…+100=?

在这里插入图片描述

三种循环的选择
1、如果不能提前预知循环次数,则使用while或者do/while循环,而for循环一般用在可提前预知循环次 数的场景下
2、while循环可以出现一次都不执行的情况,但是do/while循环无论如何循环体都会被执行一次

循环中使用的跳转语句

Java提供了三种跳转语句:break、continue以及return,用来强制转移程序执行的顺序

  • break
    break语句除了与switch结合使用外,还用来强制中断当前的循环,不再执行循环体中break后面的语句
    而退出循环。譬如在后续将学到从数据库里循环取出数据,用来验证用户的用户名是否正确。如果当用
    户名符合某一条数据时,就需要用到break语句来结束当前的循环验证

  • continue
    continue语句的功能是,在循环语句中,当碰到continue时,将不再执行循环体continue之后的语句,
    而重新判断循环控制的条件,继续循环,直到循环条件的值为假时退出循环


http://www.niftyadmin.cn/n/3372058.html

相关文章

(水题)洛谷 - P1014 - Cantor表

https://www.luogu.org/problemnew/show/P1014 很显然同一对角线的和是相等的。我们求出前缀和然后二分。 最后注意奇偶的顺序是相反的。 #include<bits/stdc.h> using namespace std; #define ll long longint prefix[100005];int init(){prefix[1]1;for(int i2;i<65…

Linux btrfs之查看btrfs文件系统

-m 指定显示被挂载的btrfs -d 显示全部的btrfs 默认选项 本文转自 yueyue207 51CTO博客&#xff0c;原文链接:http://blog.51cto.com/yueyue207/2082410

今天针对之前学习到的语句,做了一些比较典型的练习题。

这些题可以很好的锻炼这些语句的综合运用&#xff0c;大家也可以试试。 九九乘法口诀表 public class Test7 {public static void main(String[] args) {for(int i1;i<9;i) {//控制行数for(int k1;k<i;k) {//控制每行的列数System.out.print(k"*"i"&quo…

2019寒假训练营第一次作业

2019寒假训练营第一次作业 1.在人生技能道路上&#xff0c;你有没有专长的高超技能获取的成功经验&#xff1f;你有什么技能比大多人&#xff08;超过70%以上&#xff09;更好&#xff1f;&#xff08;学习&#xff0c;棋类&#xff0c;球类&#xff0c;乐器&#xff0c;艺术&a…

做练习碰到很多问题,总结一下题型和解决问题的方法。

代码调试 第一步&#xff1a;在代码视图的左侧双击添加一个断点第二步&#xff1a;右键debug as java application第三步&#xff1a;自动单击yes切换到debug视图第四步&#xff1a;F5进入方法体内、F6逐步、F7返回上一个断点、F8返回到下一个断点、跳到方法头、也可以直接观…

JAVA OOP学习笔记——多态(polymorphism)

多态指的是同一个方法调用&#xff0c;由于对象不同可能会有不同的行为。现实生活中&#xff0c;同一个方法&#xff0c;具体实现会完全不同。比如说人都会学习&#xff0c;程序员和厨师都是人&#xff0c;但他们有各自的学习方法。 构成多态需要: 多态是针对方法而言的&#x…

继续练习语法

这些题真的很有代表性&#xff0c;再编码的过程中&#xff0c;遇到了很多问题&#xff0c;明显感觉的到编码的不简单 &#xff0c;加油&#xff01; 通过键盘输入一个年份&#xff0c;输出判断某一年是否为闰年 能被4整除并且不能被100整除或者能被400整除 public class A1 {p…

方法的声明和调用!!

终于开始学习新的知识了 &#xff0c;今天了解到了方法的概念&#xff0c;分享给大家。 方法的概念 多次反复编写明显是不合适的&#xff0c;而结构化编程中的模块化在Java中的体现就是自定义方法。 例如&#xff1a;输出1-100之间所有素数 public class Test1 {// 特殊的方…