Java SE
- 一、数据类型
- 二、输入包(Scanner)
- 三、流程控制
- 1.if分支
- 2.多条件判断
- 3.switch开关分支
- 4.for循环
- 5.while循环
- 6.do-while循环(无论条件如何,我先执行一次)
- 四、包与注释符
一、数据类型
分为基本数据类型和引用数据类型
1.常用基本类型
基本数据类型 | 占内存 | 取值范围 | 默认值 |
---|---|---|---|
byte | 1字节 | -128~127 | (byte)0 |
short | 2字节 | -32768~32767 | (short)0 |
int | 4字节 | -2147483648~2147483647(-215~215-1) | 0 |
long | 8字节 | -9223372036854775808L~9223372036854775807L(-231~231-1) | (byte)0 |
float | 4字节 | 对于负数-3.402823E38~-1.401298E-45 对于正数1.401298E-45~3.402823E38 |
0.0F |
double | 8字节 | 对于负数-1.79769313486232E308~4.94065645841247E-324 对于正数4.94065644841247E-324~1.79769313486232E308 |
0.0D |
char | 2字节 | unicode字符,用单引号括起来 | '\u0000' |
boolean | 1字节 | true,false | false |
double是64位
- | - | - | - | - | - | - | - | - | - |
---|---|---|---|---|---|---|---|---|---|
简单类型 | boolean | byte | char | short | int | long | float | double | void |
二进制位数 | 1 | 8 | 16 | 16 | 32 | 64 | 32 | 64 | - |
封装器类型 | Boolean | Byte | Character | Short | Integer | Long | Float | Double | Void |
public class Demo1 { public static void main(String[] args) { //数字 //整型 int i1=100; //长整型 long i2=998877665544332211l; //短整型 short i3=235; //浮点型 double d1=3.5; //双精度 double d2=3; float f1=(float)3.5; //单精度 float f2=3.5f; //单精度 //布尔类型 boolean true真/false假 boolean isPass=true; boolean isOk=false; boolean isBig=5>8; if(isPass){ System.out.println("通过了"); }else{ System.out.println("未通过"); } //单字符 char f='女'; char m='男'; //字符串 String s1="Hello 中文!"; String s2=1+""; //转换成String } }
类型转换
- 自动转换
小转大,类型匹配
double d=5; String s="Hello"+9527
- 强制转换
大转小,类型适应(数字转数字),格式下,小括号中要放的是转换的类型
int i=(double)198.5;
- 不同类型的强制转换
String name = "9527"; int brother = Integer.parseInt(name) + 1; System.out.println(brothe double d = Double.parseDouble(name); Boolean.parseBoolean(name); float f = Float.parseFloat(name);
二、输入包(Scanner)
看使用方法
//导入包,同一个包不用导入直接使用,不同的包需导入
import java.util.Scanner;
/**
* 输入 * @author Administrator * */ public class Math { public static void main(String[] args) { //获取输入值 Scanner input=new Scanner(System.in); //定义变量 int n=input.nextInt(); //等待输入 //String name=input.next(); //输入字符 //float mark=input.nextFloat(); //输入单精度数字 //double pi=input.nextDouble(); //输入双精度数字 //条件 判断 if(n==0){ System.out.println("零"); }else if(n%2==1){ //如果一个数与2求余为1 System.out.println("奇数"); }else{ System.out.println("偶数"); } } }
输出3位数到指定数之间的中能同时被3或5整除的数
import java.util.Scanner; public class InputDemo { public static void main(String[] args) { //获取控件 Scanner input=new Scanner(System.in); System.out.print("请输入n:"); //从键盘输入 int n = input.nextInt(); for (int i = 100; i <= n; i++) { if(i%3==0&&i%5==0){ System.out.println(i); } } } }
- 导入包
同一个包中的类可以直接引用
不同包中的类型需要导入,使用import,import java.util.Scanner;
如需使用某个包下的所有类,则使用*号,如import java.util.*;
- 创建输入
Scanner input=new Scanner(System.in); System.out.print("请输入一个数:"); //定义变量 int n=input.nextInt(); //等待输入
注意
next()
方法
三、流程控制
1.if分支
语法格式
if(判断条件){ //true的话输出结果 } if(判断条件){ }else{ //false的话输出结果 }
示例:首先判断你输入的数值是否为0,然后判断你输入的是奇数还是偶数
/** * 判断一个数是奇数还是偶数 * @author Administrator * */ public class Math1 { public static void main(String[] args) { //定义变量 int n=0; //条件 判断 if(n==0){ System.out.println("零"); }else if(n%2==1){ //如果一个数与2求余为1 System.out.println("奇数"); }else{ System.out.println("偶数"); } } }
2.多条件判断
语法格式
if(第一个条件){ }else if(第二个条件){ }else if(第三个){ }else if(第四个){ } ...第n个 }
示例:if-else 输入年龄,判断年龄段
0-30 青年
31-60 中年
61-90 老年
晚年
import java.util.Scanner; /** * do-while 输入年龄,介于1-100之间 * */ public class Math8 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int age = 0; String range = ""; System.out.print("请输入年龄:"); age = input.nextInt(); System.out.println("年龄是:" + age); if (age >= 0 && age <= 30) { range = "青年"; } else if (age >= 31 && age <= 60) { range = "中年"; } else if (age >= 61 && age <= 90) { range = "老年"; } else { range = "晚年"; } System.out.println("年龄段是:" + range); } // 0-30 青年 // 31-60 中年 // 61-90 老年 // 晚年 }
练习:商场搞活动,满2000打5折,满1000打7折,满500打9折,不到500不打折
3.switch开关分支
语法格式
switch(条件判断){ case 1: system.out.println("输出结果"); break; default: ... break; }
示例:输出一周
import java.util.Scanner; public class Math9 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int week = 0; System.out.print("请输入周:"); week = input.nextInt(); switch (week) { //char int case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期天"); break; default: System.out.println("输入错误"); break; } } }
- 判断条件
- case 符合后面值的条件往下执行
- break 结束本次执行
- default 当条件判断不符合以上case中任意一种时给出的结果
4.for循环
语法格式
for(int i = 0 ;i <= 10;i++){ //循环体 }
示例:循环输出1-10的数字
for(int i = 0;i <10;i++){ System.out.println(i+1) }
练习:for循环计算1到该数间能被3和5同时整除的数之和
5.while循环
语法格式
while(循环次数){ //循环体 i++; }
示例:输出1-10
int i = 0 while(i < 10){ System.out.println(i+1); i = i+1; }
练习:循环输出1-10内所有的奇数
6.do-while循环(无论条件如何,我先执行一次)
语法格式
do{
//循环体
}while(条件,为true时继续)
示例do-while 输入年龄,介于1-100之间时输出。
import java.util.Scanner;
/**
* do-while 输入年龄,介于1-100之间
* */ public class Math8 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int age = 0; do { System.out.print("请输入年龄:"); age = input.nextInt(); } while (age < 1 || age > 100); //条件为真,循环继续 System.out.println("年龄是:" + age); } }
break 结束当前循环
import java.util.Scanner; /** * while循环计算1到该数间能被3和5同时整除的数之和 * */ public class Math6 { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.print("请输入一个数:"); int n=input.nextInt(); int i=1,sum=0; while(i<=n){ if(i%3==0&&i%5==0){ sum=sum+i; System.out.println(i); break; } i++; } System.out.println("总和是:"+sum); System.out.println("i的值:"+i); } }
举例:每天跑10圈,跑到第5圈不跑了。
continue:结束当次循环,继续下一次循环
import java.util.Scanner; /** * while循环计算1到该数间能被3和5同时整除的数之和 * */ public class Math7 { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.print("请输入一个数:"); int n=input.nextInt(); int i=1,sum=0; while(i<=n){ if(i%3==0&&i%5==0){ sum=sum+i; } i++; if(i<=15) {continue;} System.out.println(i); } System.out.println("总和是:"+sum); System.out.println("i的值:"+i); } }
举例1:每个月的每天跑10圈,突然有一天没有跑。
举例2:从1数到10 ,在要数5的时候直接跳过数10了。
四、包与注释符
- 包名是什么
指定包名,相当于文件夹,一般使用倒置的域名如(com.zparkpt.MyJava)
避免冲,如一个项目中有多个同名的类,可以处在不同的包中间
类可以不在任何包中,一个包中也可以有0-N个类
包与文件夹一一对应
包的声明要放在第一行package com.zparkpt.MyJava;
Java类文件名,首字母大写
- 注释符
Javadoc 这里注意,开头第一个斜杠后是两个星号,每一个换行前都要有一个星号 /** * Java类文件说明 * @author Author * @version 1.0.1 * 文档注释 */ 单行注释 //这里是单行注释符,两个斜杠 多行注释 /* 这里是多行注释,在开和和结尾各家一个斜杠和星号的符号,注意顺序 */