day04-课堂笔记

1、运算符【剩下的运算符】
* 赋值运算符

两种类型:

基本赋值运算符:=

扩展的赋值运算符:

+=

-=

*=

/=

%=

它们都是先执行等号右边的表达式,最后再经过运算赋值给左边

【注意】

表面上i=i+1;和i+=1;相同,实际上

如果

byte i=10;

i=i+1;      //编译不通过,i+1为int型,i为byte型变量,需进行强制类型转换

i=(byte)(i+1);    //编译通过

i+=1;      //编译通过,等同于i=(byte)(i+1);而非i=i+1;【会损失精度】

【强制类型转换的类型以小容量的类型为基准】

【扩展赋值运算符不改变变量的数据类型,所以会出现强制类型转换】

* 字符串连接运算符

“+” 用作加法运算符或字符串连接符

*两边为数字时,进行加法运算

*两边只要有一个是字符串,就会进行字符串连接,结果为字符串

* 三目运算符/三元运算符/条件运算符

  布尔表达式 ? 表达式1 : 表达式2

当布尔表达式的值为true时,表达式1的值作为整个运算的结果

反之,将表达式2的结果作为,整个运算的结果

  该运算符不是一条完整语句,运算的结果应该有变量承担

比如,

boolean sex = false;

sex ? '男' : '女' ;  //编译不通过,不是完整语句

char c=sex ? '男' : '女' ;  //编译通过

System.out.println(c);

2、控制语句

*所有的控制语句都可以嵌套使用

* 选择结构
- if

第一种:

  if(true/false){

   java语句;

   java语句;

   ......

   java语句;

  }

第二种:

  if(true/false){

    java语句;

     ......

    java语句;

  }else if{

    java语句;

     ......

    java语句;

  }

第三种:

  相较于第二种有多个else if

  只要有一个执行成功,整个if语句结束

第四种:

  第三种的最后是else没有了if

以上第一种和第四种方式,因为有else,所以在条件为真时,必有一个分支被执行

-if语句的分支若只有一个,则可以不用加{},格式:if(true/false) java语句;

记住以下代码:

第一步:

java.util.Scanner s = new java.util.Scanner(System.in);

第二步:

String str = s.next();

int num = s.nextInt();

【在需求较多,逻辑结果复杂时,可以先编写部分代码,编译且测试通过后,将编好的代码注释掉,继续编写下一部分代码,以此类推】

【例子】

/*
接收键盘输入,判断年龄

*/

public class IfTest02{

public static void main(String[] args){

//键盘接收
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("请输入年龄:");
int age = s.nextInt();

String str = "老年";
if (age < 0 || age > 150)
{
str = "请输入合法年龄!";
}else if (age <= 12)
{
str = ("儿童");
}else if (age <= 18)
{
str = "青少年";
}else if (age <= 35)
{
str = "青年";
}else if (age <= 55)
{
str = "中年";
}
System.out.println(str);
}
}

【例子2】

/*
需求:
判断当前的天气
下雨
判断性别
男:用普通伞
女:用小花伞
晴天
温度
大于30
男:戴墨镜
女:戴帽子

用到嵌套
1表示雨天,男
0表示晴天,女

温度用数字

*/
public class IfTest03
{
public static void main(String[] args)
{
java.util.Scanner s = new java.util.Scanner(System.in);

System.out.print("请输入天气:");int weather = s.nextInt();
System.out.print("请输入性别:");

int sex = s.nextInt();
if (weather == 1) //如果下雨
{
if (sex == 1) //如果是男的
{
System.out.println("普通伞");
}else if (sex == 0) //如果女的
{
System.out.println("小花伞");
}else
System.out.println("性别不正确");
}
else if (weather == 0) //如果晴天
{
System.out.print("请输入温度:");
int tem = s.nextInt();
if (tem >= 30)
{
if (sex == 1)
{
System.out.println("戴墨镜");
}else if (sex == 0)
{
System.out.println("戴帽子");
}else
System.out.println("性别不正确");
}

}
}
}

-----部分源自B站动力节点教育集团

Java学习day04的更多相关文章

  1. Java 学习 day04

    17-数组(概述-内存结构) 概念:同一种类型数据的集合,其实数组就是一个容器. 可以自动给数组中的元素从0开始编号,方便操作这些元素. int[] x = new int[3]; 01-数组(静态初 ...

  2. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  3. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  4. 分享篇——我的Java学习路线

    虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...

  5. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  6. Java学习心得之 HttpClient的GET和POST请求

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...

  7. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  8. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  9. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

随机推荐

  1. 焦大:做seo需要的三心二意

    http://www.wocaoseo.com/thread-92-1-1.html        读过一些外国人写的教程之后,愈发觉得国外人写的教程甚是有趣,比起国内学习的课本来,真是不可同日而语. ...

  2. Python3 高级编程技巧(部分)

    目录: 在列表.字典.集合中筛选数据 为元组元素命名 通过列表.元组创建字典 字典排序 寻找字典的公共键 让字典保持有序 生成器函数 yield协程 同时遍历值与下标 在列表.字典.集合中筛选数据 很 ...

  3. Spark保存的时候怎么去掉多余的引号转义

    今天用SparkSQL保存一份json数据的时候,引号被转义了,并用括号包起来了,导致下游新来的小伙伴无法处理这份数据. 保存后的数据长这样(用\t分割): data "{\"ke ...

  4. 写shader小细节——这个会不断更新

    这个是因为自己被自己蠢哭了动笔的,里面大概记录自己所犯的错,和一些小知识. 1.有一个错误我经常犯:内部定义的字段没对应开放到编辑器的字段.这个是由于我有点依赖ide写代码的习惯导致,而shader的 ...

  5. [BUUOJ记录] [ACTF2020 新生赛]Include

    本题主要考查了利用php://filter伪协议进行文件包含 进入题目根据Tip进入正题,可以看到URL中存在文件包含(题目名也很直接) 首先考虑 "php://input"伪协议 ...

  6. HTML5 Drag & Drop

    一定要区分不同事件产生的对象 源元素 属性:draggable = "true" 事件: ondragstart:开始拖拽 ondragend:拖拽结束 目标元素 事件: ondr ...

  7. 聊聊redis单线程为什么能做到高性能和io多路复用到底是个什么鬼

    1:io多路复用epoll  io多路复用简单来说就是一个线程处理多个网络请求 我们知道epoll in 的事件触发是可读了,这个比较好理解,比如一个连接过来,或者一个数据发送过来了,那么in事件就触 ...

  8. cdispaly的Grid布局与Flex布局

    cdispaly的Grid布局与Flex布局 Gird 布局与 Flex 布局有一定的相似性,都是对容器的内部项目进行划分. Flex 布局是轴线布局,只能指定项目针对轴线的位置,可以看作成一维布局 ...

  9. 使用java爬虫从雪球网下载股票数据

    雪球网也是采用Ajax方式展示数据,我依然采用开发者工具查看其访问地址和返回数据. 访问使用到的库是jsoup,解析返回的json用的类库是jackson,二者的依赖是: <!-- jsoup ...

  10. 解Bug之路-串包Bug

    解Bug之路-串包Bug 笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug.现在就挑一个案例出来,写出分析思路,以飨读者,希望读者在以后的工作中能够少 ...