Java学习day04
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的更多相关文章
- Java 学习 day04
17-数组(概述-内存结构) 概念:同一种类型数据的集合,其实数组就是一个容器. 可以自动给数组中的元素从0开始编号,方便操作这些元素. int[] x = new int[3]; 01-数组(静态初 ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- 分享篇——我的Java学习路线
虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- Java学习心得之 HttpClient的GET和POST请求
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
随机推荐
- txt工具大全(TXT文件合并、txt批量替换、编码转换器)
http://www.wocaoseo.com/thread-301-1-1.html txt是我们在seo中常用的处理对象,但是在这个处理过程中可能有些细节需要注意,比如有些有编码问题,我们就需要编 ...
- RabbitMQ系列随笔——介绍及安装
一.RabbitMQ介绍 RabbitMQ是由erlang开发的AMQP(Advanced Message Queuing Protocol)的开源实现.他是高级消息队列协议,是应用层协议的一个开放标 ...
- JavaScript对象原型链的学习
1.构造函数和原型 1.1对象的三种创建方式 字面量方式 var obj = {}; new关键字 var obj = new Object(); 构造函数方式 function Person(nam ...
- composer分析(二)结合PSR-4
composer分析(二)结合PSR-4 PSR-4提供了一种文件和路径映射关系,非常类似文件系统的组织结构 全限定类名 \<NamespaceName>(\<SubNamespac ...
- [BUUOJ记录] [GXYCTF2019]BabySQli
有点脑洞的题,题目不难,主要考察注入和联合查询的一个小特点 进入题目是一个登录框,看看源代码,在search.php文件中发现了这个 大写的字母和数字很明显是base32,先用base32解码一下,发 ...
- 实际项目中遇到EF实体类的操作问题及操作方法
之前一直做ASP,都是直接写数据库操作语句,但是现在使用linq或者EF了,具体数据库操作不会了,遇到几个问题,然后经过查找资料解决了,记录一下. 一.遇到序列化问题 遇到循环引用问题,我的项目是一个 ...
- 剑指 Offer 47. 礼物的最大价值
题目描述 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格.直到到达棋盘的右下角.给定一个棋盘及 ...
- Python学习—Anaconda详细 下载、安装与使用,以及如何创建虚拟环境,不仅仅只有安装步骤哦
上一期我们介绍了Python.Pycharm.Anaconda三者之间的关系以及使用,这一期主要详细介绍如何在Windows上下载和安装工具Anaconda,然后使用其自带的conda管理不同项目的虚 ...
- Zabbix下查看参数的小技巧
我们在管理.维护Zabbix的时候,经常需要查看配置文件下的一些参数信息.下面介绍一些常用的小技巧. 1:我想知道zabbix_server.conf文件中配置了那些参数. # grep '^[a-Z ...
- SQL Node 1.05版
输出: select a.f1, b.f2 from table01 a, ( select a from tb ) b where a.f1=1 and b.f2=2 or b.f3=3 order ...