尚学堂Java学习日记Day3
第三天老师先回顾了昨天的内容我从回顾中掌握了新的知识
如下图所示
int与double计算,输出类型为double的不同结果
会把int转成double类型的,这是隐式转换

第三天主要讲了运算符、简单应用类型(scanner和random)和if的流程控制语句

1.算术运算符
总结的结构示意图

下图所示:
两个变量做运算,结果取决于数据类型大的那个


取模就是求其余数
取模的正负取决与被除数的正负(被除数是左边的那个)
除法运算则无关

自增 ++
(++ i)前自增:先自增完毕,再运算整个表达式,语句分号前面的都是运算表达式
(i++)后自增,先运算完整个表达式(分号前面的都是表达式),再进行自增;


如图换种更加显而易见的输出表达式

前2个一组后2个一组,分别比对结果一样

结论:
如果运算符在变量的前面,则该变量自增1或者自减1,然后返回的是变量的新值,如果运算符在变量的后面,则变量也会自增或者自减1,但是返回的是变量原来的值。++在前就是先运算,再取值,++在后就是先取值,再运算。

赋值运算符
= , +=, -=, *=, /=, %=
运算符 运算 范例 结果
= 赋值 a=3,b=2 a=3,b=2
+= 加等于 a=3,b=2;a+=b; a=5,b=2;
-= 减等于 a=3,b=2,a-=b; a=1,b=2;
= 乘等于 a=3,b=2,a=b; a=6,b=2
/= 除等于 a=3,b=2,a/=b; a=1,b=2;
%= 模等于 a=3,b=2,a%=b; a=1,b=2
a+=b 可以想象成 a=a+b;
变量声明完了之后,可以使用赋值语句(assignment statement)给变量赋一个值,Java中使用等号(=)作为基本的赋值运算符(assignment operator),
格式如下:
variable = expression;
变量 = 表达式;

变量我们已经知道如何声明,表达式具体如何定义?
表达式的定义:
表达式涉及到值(常量),变量和通过运算符计算出的值,以及他们组合在一起计算出的新值。
x =y+1;

问题1:
int x;
System.out.println (x = 1);
如何理解?
答:等价于

x=1;
System.out.println(x);
注意:不能 1=x,变量名必须在赋值运算符的左边。




编译通过

对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。
对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

比较运算符 (boolean)
如何比较两个值?使用比较运算符 3和5谁大,在java中如何比较?
比较运算符比较的两边操作数,结果都是boolean的,只有true和false两种结果。
运算符 运算 例子 结果
== 相等于 4= =3 false
!= 不等于 4!= 3 true
< 小于 4 < 3 flase

        大于                                  4 > 3                                true

<= 小于等于 4<=3 false

= 大于等于 4>=3 true
Instanceof 检查是否是类的对象 "hello"instanceof String true
注意的细节:
1.使用比较运算符的时候,要求两种数据类型必须一致。
byte、short、char 会自动提升至int。



逻辑运算符
逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。我们的比较运算符只能进行一次判断,对于对此判断无能为力,那么逻辑运算符就可以经将较运算符连接起来。

下图案例:

三元运算符
格式
(条件表达式)?表达式1:表达式2;

如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;

示例:
1获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数

优先级

简单引用类型
Scanner和Random

1.Scanner类
我们要学的Scanner类是属于引用数据类型,我们先了解下引用数据类型。
引用数据类型的使用
与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式。
数据类型 变量名 = new 数据类型();
每种引用数据类型都有其功能,我们可以调用该类型实例的功能。
变量名.方法名();
Scanner类
Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。
Scanner使用步骤:
导包:import java.util.Scanner;
创建对象实例:Scanner sc = new Scanner(System.in);
调用方法:
int i = sc.nextInt(); 用来接收控制台录入的数字
String s = sc.next(); 用来接收控制台录入的字符串
了解完Scanner类,我们编写代码来使用下它:ScannerDemo01.java
import java.util.Scanner;
public class ScannerDemo01 {
public static void main(String[] args) {
//创建Scanner引用类型的变量
Scanner sc = new Scanner(System.in);
//获取数字
System.out.println(“请输入一个数字”);
int n = sc.nextInt();
System.out.println(“n的值为” + n);
//获取字符串
System.out.println(“请输入一个字符串”);
String str = sc.next();
System.out.println(“str的值为” + str);
}
}

2.随机数类Random
我们来学习下,用来产生随机数的类Random,它也属于引用数据类型。
这个Random类,它可以产生多种数据类型的随机数,在这里我们主要介绍生成整数与小数的方式。
方法简介
public int nextInt(int maxValue) 产生[0,maxValue)范围的随机整数,包含0,不包含maxValue;
public double nextDouble() 产生[0,1)范围的随机小数,包含0.0,不包含1.0。

引用数据类型的使用方式,在学习键盘录入Scanner时,我们已经学习过,在这里,再次回顾一下:
Random使用方式:
import导包:所属包java.util.Random
创建实例格式:Random 变量名 = new Random();

接下来,通过一段代码,一起学习下Random类的使用,RandomDemo.java
import java.util.Random;

public class RandomDemo {
public static void main(String[] args) {
// 创建Random类的实例
Random r = new Random();
// 得到0-100范围内的随机整数,将产生的随机整数赋值给i变量
int i = r.nextInt(100);
//得到0.0-1.0范围内的随机小数,将产生的随机小数赋值给d变量
double d = r.nextDouble();
System.out.println(i);
System.out.println(d);
}
}

公式:
产生 范围 —> [1,100] 计算工厂 ( 随机数[max – min + 1] + min ) {闭合区间 }

如果 要是 开区间 则是 ( 随机数 [max – min ] + min )

if的流程语句
一共有三种:if…,if…else if…else,if else
下图例子

以上Day3内容

尚学堂Java学习日记Day3相关推荐

  1. 尚学堂Java学习日记Day1

    尚学堂学习日记Day1 #今天开始写学习博客记录自己学习java的点滴成长历程,希望能成为学弟学妹们的前车之鉴. 先大概的自我介绍下,我原本从事的是网络工程师,学习的是Cisco(思科)并拥有CCNP ...

  2. 尚学堂Java学习笔记

    尚学堂Java学习笔记 ============================ J2SDK&JRE J2SDK:JAVA2 SOFTWARE DEVELOPMENT KIT JRE:JAVA ...

  3. 尚学堂Java学习第四章课后编程题作业参考答案

    我只是一个学习java 的初学者哈哈哈,代码写的都很烂,望大佬们指点指点. #尚学堂第三章:java面向对象基础 ##课后作业编程题一: 题目:1. 编写 Java 程序用于显示人的姓名和年龄.定义 ...

  4. 尚学堂怎么样?我在尚学堂Java学习感受。。

    理论与实践相结合的桥梁 基础班只有短短的两周,虽说时间很短,但其中的每天都使我收获很大. 受益匪浅,它不但极大地加深了我对一些理论知识的理解, 不仅使我在理论上对Java有了全新的认识,在实践能力上也 ...

  5. 阿昆同学的Java学习日记Day3

    CREATE TABLE dept(id INT PRIMARY KEY auto_increment,dep_name VARCHAR(20),addr VARCHAR(20) ); CREATE ...

  6. 尚学堂JAVA基础学习笔记_2/2

    尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...

  7. 尚学堂JAVA高级学习笔记_1/2

    尚学堂JAVA高级学习笔记 文章目录 尚学堂JAVA高级学习笔记 写在前面 第1章 手写webserver 1. 灵魂反射 2. 高效解析xml 3. 解析webxml 4. 反射webxml 5. ...

  8. 尚学堂Java培训:如何读书?

    尚学堂Java培训:如何读书? 转载请注明出处:[http://www.bjsxt.com/books/how_to_read_book.html] 对于没有基础的同学来说,我们强烈推荐使用视频入门, ...

  9. 尚学堂Java培训:如何寻找好书?

    尚学堂Java培训:如何寻找好书? 转载请注明出处:[http://www.bjsxt.com/books/how_to_find_good_book.html] 所 谓好书,就是适合自己的书!每个人 ...

最新文章

  1. Tips——IndexSearcher自动更新
  2. 全面梳理关系型数据库和 NoSQL 的使用情景
  3. yum mysql 启动失败_Linux下MySQL数据库yum升级后无法启动解决办法 | 系统运维
  4. 一个write和printf混用的例子
  5. iOS - NSUserDefaults 实现数据的持久化保存
  6. 数据分析案例(贷款风险预测)
  7. 2009最后一天,为了期盼而祝福
  8. Xshell替代品 -- FinalShell
  9. CocoaPods学习系列5——错误集锦
  10. LeetCode 767. 重构字符串
  11. 图像算法六:【彩色图像处理】彩色模型、彩图处理
  12. springboot + mybatis 学英语网、背单词网站
  13. Rocket - tilelink - AtomicAutomata
  14. 计算机程序c语言教材,C语言程序设计(高等学校计算机基础教育教材精选)
  15. win10电脑性能测试软件,win10系统测试计算机性能的图文方法
  16. 今日恐慌与贪婪指数为21 恐慌程度有所缓解
  17. java clh_【Java】CLH 自旋锁
  18. Java——获取上传的pdf页数
  19. 【MM模块】Subsequent Debits/Credits 事后借记/事后贷记
  20. springboot访问下载/resource/static下的静态资源;下载excel文件损坏,打不开

热门文章

  1. Centos7安装Nethogs网络监控软件
  2. JAVA中Calendar类的常用方法
  3. 第十二篇:Unity与UE4的通信机制(二):UE4与UE4通信
  4. 吸积过程的数值模拟与外流
  5. 给公司领导的一些小建议
  6. java tm se 下载_Java SENetBeans IDE下载_Java SENetBeans IDE官方下载-太平洋下载中心
  7. 程序题智能批改系统需求分析
  8. Android 图片选择器和图片裁剪库
  9. 贝叶斯公式和极大似然估计详解
  10. PHP读取文件的常见方法