java学习之旅(day.04)
运算符
-
算术运算符:+ ,- ,* ,/,%(取余或模运算), ++(自增),-- (自减)
-
赋值运算符:=
-
关系运算符:>, <,>=, <=, ==, !=(不等于),instanceof
-
逻辑运算符:&&,||, !
以下了解即可
-
位运算符:&, |,^ ,~ ,>> ,<<, >>>
-
条件运算符:?:
-
扩展赋值运算符:+= ,-= ,*=, /=
public class Demo01 {
public static void main(String[] args) {
//二元运算符
//Ctrl+D:复制当前行到下一行
int a=10;
int b=20;
int c=25;
int d=25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
}
}
================================================================
public class Demo02 {
public static void main(String[] args) {
long a=1231561656L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d); //long
System.out.println(b+c+d); //int
System.out.println(c+d); //int
//如果有long,则结果为long
//如果有double,则结果为double
//如果没有long,则结果为int
}
}
=================================================================
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果:正确,错误 布尔值
int a=10;
int b=20;
System.out.println(a>b); //false
System.out.println(a==b); //false
System.out.println(a<b); //true
}
}
==================================================================
public class Demo04 {
public static void main(String[] args) {
int a=3;
int b=a++;//执行完这行代码后,先给b赋值,再自增
int c=++a;//执行完这行代码前,先自增,再给c赋值
System.out.println(a); //5
System.out.println(b);//3
System.out.println(c);//5
//幂运算:很多运算,需要借助工具类来操作
//如:2*2*2
double pow=Math.pow(2,3);
System.out.println(pow);
}
}
==================================================================
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
// 与 或 非(非你即我,取反)
boolean a=true;
boolean b=false;
System.out.println("a&&b:"+(a&&b));//逻辑与运算
System.out.println("a||b;"+(a||b));//逻辑或运算
System.out.println("!(a&&b);"+!(a&&b));//逻辑非运算
//如果是真,则为假,若是假,则为真
//短路运算:b&&a,若b为假,则不会再计算后面的b&&a,直接就停止了
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(c); //5
System.out.println(d);//false,所以,判断c<4为假,后面的不再执行
==================================================================
package operator;
public class Demo06 {
public static void main(String[] args) {
//位运算
/*
A=0011 1100
B=0000 1101
A&B 0000 1100 上下两个位比较,如果都为1,才为1
A|B 0011 1101 上下位都为0,结果为0,否则为1
~B(取反) 1111 0010
A^B(异或运算)0011 0001 如果两个位置相同,则0,否则为1
2*8怎么运算最快?
<<(左移):相当于*2,>>(右移):相当于/2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
}
}
=====================================================================
package operator;
public class Demo07 {
public static void main(String[] args) {
int a=10;
int b=20;
a+=b; //a=a+b
System.out.println(a); //30
//字符串连接符 +,在+两侧,只要有一侧出现了string类型,
//则会把另一侧也转换为string(字符串),再进行连接
System.out.println(""+a+b);
System.out.println(a+b+"");
//如果字符串“”在+前,后面的会进行拼接
//如果字符串“”在+后,前面的会先进行运算再拼接
}
}
======================================================================
package operator;
//三元运算符
public class Demo08 {
public static void main(String[] args) {
//x ? y : z
//如果x==true,则结果为 y,否则结果为z
int score =80;
String type =score <60?"不及格": "及格";
System.out.println(type);
}
}
运算符的优先级:
包机制
为了更好的组织类,java提供了包机制,用于区别类名的命名空间
包的本质就是个文件夹
包语句的语法格式:
package pkg1[.pkg2[.pkg3...]]
一般利用公司域名倒置作为包名
如:www.baidu.com 要建的包名为:com.baidu.www
为了能够使用某一个包的成员,我们需要在java程序中明确导入该包,使用import语句可完成此功能
import package1[.package2...].(classname|*);
Java Doc
javadoc命令是用来生成自己API文档的(将注释信息生成一个帮助文档)
参数信息
- @author 作者名
- @version 版本名
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
package com.zhang.base;
/**
* @author zhang
* @version 1.0
* @since 1.8
*/
public class Doc {
String name;
/**
* @author zhang
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
- 使用命令行cmd生成javaDoc文档(格式:javadoc 参数 jav文件)
cmd中输入:javadoc -encoding UTF-8 -charset UTF-8 Doc.java
javadoc 命令
Doc.java:文件名
中间加的参数-encoding UTF-8 -charset UTF-8是为了不使文档乱码,文档中有中文,有时会乱码
- 使用IDEA生成javaDoc文档
java 流程控制
java提供了一个工具类,可以获取用户的输入,进而实现程序和人的交互。java.util.Scanner时java5的新特征,可以通过Scanner类来获取用户的输入
基本语法:
Scanner scanner=new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()与hasNextLine()判断是否还有输入的语句
package com.zhang.scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描对象,用于接收键盘数据
Scanner scanner =new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
//下面这句也可写为:if (scanner.hasNext())
if (scanner.hasNext()==true){
//使用next方式接收
String str =scanner.next();
System.out.println("输出内容为:"+str);
}
//凡是IO流的类如果不关闭会一直占用资源
scanner.close();//scanner用完后及时关掉,节省空间
}
}
===================================================================
package com.zhang;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
//创建一个扫描对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextline方式接收:");
//判断用户有没有输入字符串
//下面这句也可写为:if (scanner.hasNextLine())
if (scanner.hasNextLine() == true) {
//if判断在这可以去掉,上面那个程序也一样
//使用nextLine方式接收
String str = scanner.nextLine();
System.out.println("输出内容为:" + str);
}
//凡是IO流的类如果不关闭会一直占用资源
scanner.close();//scanner用完后及时关掉,节省空间
}
}
next()
- 一定要读取到有效字符后才可以结束输入(要手动输入)
- 对输入有效字符之前遇到的空白,next()会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
- next()不能得到有空格的字符串
- 总之,一句话,在输入有效字符串前任你打空格,但输入了一个字符串后不能再出现空格,如果出现,只输出空格前的部分。
nextLine()
- 以enter作为结束符,也就是说,nextLine()方法返回的是输入回车之前的所有字符
- 可以获得空白
package com.zhang.scanner;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.println("请输入整数:");
if (scanner.hasNextInt()) {//看是不是整数
i = scanner.nextInt();
System.out.println("整数数据:" + i);
} else {
System.out.println("输入的不是整数");
}
System.out.println("请输入小数:");
if (scanner.hasNextFloat()) {//看是不是小数
f = scanner.nextFloat();
System.out.println("小数数据:" + f);
} else {
System.out.println("输入的不是小数");
}
scanner.close();
}
}
================================================================
package com.zhang.scanner;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
//输入多个数字并求和与平均数,每输入一个数字用回车确认,
// 通过输入非数字来结束输入并输出执行结果
Scanner scanner= new Scanner(System.in);
double sum=0;
int m=0;//计算输入了多少个数字
while(scanner.hasNextDouble()){
double x=scanner.nextDouble();
m=m+1;
sum=sum+x;
System.out.println("你输入了第"+m+"个数据,当前结果为sum=:"+sum);
}
System.out.println(m+"个数的和为:"+sum);
System.out.println(m+"个数的平均值为:"+(sum/m));
scanner.close();
}
}
顺序结构
顺序结构是java的基本结构,除非特别指明,否则就按顺序一句一句执行,顺序结构是最简单的算法结构
选择结构
- if单选择结构
语法表达:
if(布尔表达式){
//如果布尔表达式为true执行的语句
}
- if双选择结构
语法表达:
if(布尔表达式){
//如果布尔表达式为true执行的语句
}else{
//如果布尔表达式为false执行的语句
}
package com.zhang.structure;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
//考试分数大于60分及格,反之,不及格
Scanner scanner=new Scanner(System.in);
System.out.println("请输入分数:");
int score=scanner.nextInt();
if(score>60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}
}
- if多选择结构
语法结构
if(布尔表达式1){
//如果布尔表达式1的值为true执行代码
}else if(布尔表达式2){
//如果布尔表达式2的值为true执行代码
}else if(布尔表达式3){
//如果布尔表达式3的值为true执行代码
}else{
//如果以上布尔表达式都不为true执行代码
}
package com.zhang.structure;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
//考试分数大于60分及格,反之,不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入分数:");
int score=scanner.nextInt();
if(score==100){
System.out.println("恭喜满分");
}else if(score>=90&&score<100){
System.out.println("优秀");
}else if(score>=60&&score<90) {
System.out.println("良好");
}else {
System.out.println("不及格");
}
scanner.close();
}
}
嵌套的if结构:可以在一个if里面嵌套另一个if语句
语法结构:
if(布尔表达式1){
//如果布尔表达式1的值为true执行代码
if(布尔表达式2){
//如果布尔表达式2的值为true执行代码
}
}
switch的多选择结构
浙公网安备 33010602011771号