开篇补充
数据类型
变量名 = 初值;
代码报错*:
1.黄色警告(提示可能发生错误 可以不用处理)
2.红色错误(编译时的错误)
代码讲解知识
public class Demo01{
public static void main(String[] args){
//隐式转换
//只能把小类型转成大类型
double d = 10;
//强制转换 会丢失精度问题
int a = (int)10.0;
System.out.println(a);
//字符串类型
String str1 = "wanlong";
System.out.println(str1);
//字符串拼接
String str2 = "wangjun";
System.out.println(str1 + str2);
int num1 = 10;
int num2 = 15;
System.out.println(num1 + num2);
//与字符串相加 永远会得到字符串
System.out.println(str1 + num1 + num2);
//输出 num1 = 10;
System.out.println("num1 = " + 10);
//将十进制转化为二进制
String s1 = Integer.toBinaryString(15);
System.out.println("s1 ="+ s1);
//10进制转8进制
String s2 = Integer.toHexString(15);
System.out.println("s2 = " + s2);
//10进制转16进制
String s3 = Integer.toHexString(15);
System.out.println("s3 = " + s3);
//判断2个字符串是否相等
//boolean 布尔类型
//只有2个值 ture(真) false(假)
String s4 =" wanglong";
String s5 = "wangjun";
boolean b1 = s4.equals(s5);
System.out.println("b1 = " + b1);
}
}
运算符
1. 算术运算符
+ - * / %(取余运算) ++(自增) --(自减)
关系运算符(主要用来当做判断条件)
注意:使用关系运算符会有返回值 并且只有布尔类型的
> < >= <= == !=
2. 逻辑运算符(判断后会有布尔类型的返回值)
&& 与 (条件1) && (条件2) 一假则假
|| 或 (条件1) || (条件2) 一真则真
! 非 取反
public class Demo02 {
public static void main(String[] args) {
//取余运算
//判断一个数是不是偶数
int n = 10 % 2;
System.out.println("n = " + n);
//编译通过(没有语法错误)
//运行数错误
// int n1 = 10 / 0;
// System.out.println("n1 = " + n1);
//自增
int n2 = 10;
//相当于 n2 = n2 + 1;
n2++;
System.out.println("n2 = "+ n2);
/*
* 加加在前 先自增 在参与运算
* 加加在后 先参与运算 在进行自增
* */
int n3 = 10;
int n4 = 10;
int n5 = n3 + n4++;
System.out.println("n4 = " + n4);// 11
System.out.println("n5 = " + n5);// 20
//关系运算符
int n6 = 10;
int n7 = 15;
boolean b1 = n6 > n7;// > < >= <= == !=
System.out.println(b1);
//逻辑运算符
int n8 = 10;
int n9 = 15;
boolean b2 = (n8 > n9) && (n8 > 1);//|| !
System.out.println(b2);
//短路现象
//当条件一为假时 不会执行条件2了
// 直接返回结果
boolean b3 = (n8 > n9) && (n8++ > 1);
System.out.println(b3);//falase
System.out.println(n8);
boolean b4 = (n8 <n9) || (++n9 > 1);
System.out.println(b4); //false
System.out.println(n9);//15
//逻辑非
boolean b5 = true;
if else
流程控制
1.顺序结构(代码由上自下逐行执行)
2.分支结构(选择执行) (if switch)
形式1:
if(判断条件){
条件成立 执行的语句
}
形式2:
if(判断语句){
条件成立 执行语句
}else{
条件不成立 执行语句2
}
形式3:
if(判断条件1){
执行语句1
}else if(判断条件2){
执行语句2
}else{
执行语句3
}
3.循环结构
public class Demo03 {
public static void main(String[] args) {
/*
//键盘输入一个成绩
//创建从键盘接收字符串的对象
System.out.println("请输入一个成绩");
Scanner in = new Scanner(System.in);
//接收输出的字符串
String str = in.nextline();
System.out.println("输入的是:" + str);
//将字符串转化成整型
int number = Integer.parseInt(str);
// 成绩大于90分优秀,70至90良好,
// 60至70合格,60及以下不及格
if (number > 90) {
System.out.println("成绩优秀");
}else if{
System.out.println("");
}
// 从控制台输入一个数
// 是偶数但是不能是7的倍数 满足条件输出该数
if (number = ) {
}
*/
// 从控制台输入一个数
// 是偶数但是不能是7的倍数 满足条件输出该数
/*
System.out.println("请输入一个数");
Scanner in = new Scanner(System.in);
String str = in.nextLine();
int number = Integer.parseInt(str);
System.out.println("输入的是:");
if (number % 2 ==0 && number % 7 != 0) {
System.out.println(number + "是偶数");
}
*/
/*
// 输入一个年份 判断是不是 闰年
System.out.println("请输入一个年份");
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
int num = Integer.parseInt(str);
if (num % 400 ==0 || (num % 4 == 0 && num % 100 != 0)) {
System.out.println(num);
}
*/
/*if嵌套(if语句中 还有if语句)
* 键盘输入模拟天气
* 如果晴天,去爬山,
* 如果下雨,去逛街,
* 再次接收用户的输入
* 小雨的话,带上伞,
* 暴雨的话,穿上雨衣
*/
System.out.println("请输入天气");
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
//判断天气
if (str.equals("晴天")) {
System.out.println("去爬山");
}else if (str.equals("下雨")) {
System.out.println("去逛街");
//再次接受用户的输入
System.out.println("请输入小雨或暴雨");
//Scanner对象 创建一次就行了
//可以接收多个键盘输入的值
String str2 = scanner.nextLine();
//继续判断小雨还是暴雨
if (str2.equals("小雨")) {
System.out.println("带上伞");
}else if(str2.equals("暴雨")) {
System.out.println("穿上雨衣");
}
}else {
System.out.println("你傻吧 输入错了");
}
}
}
switch语句
switch (被匹配的值) {
case 匹配的值1:
值匹配成功 执行的语句
break; 跳出switch语句(跳出switch这对大括号)
case匹配的值2:
值匹配成功 执行的语句
break;
case匹配的值3:
值匹配成功 执行的语句
break;
default:
如果所有case都没有匹配成功 执行default中的语句
break;
}
如果判断的是一个范围 使用if好写
如果判断的是集体的几个值 使用switch好写
public class demo04 {
public static void main(String[] args) {
//接受用户的输入
System.out.println("请输入1,2,3,4");
Scanner scanner = new Scanner(System.in);
//真正接收用户从键盘输入的值 是这句话
String str = scanner.nextLine();
//1 ---春天
//2 ---夏天
//3 ---秋天
//4 ---冬天
switch (str) {
default:
//所有case都没匹配成功
//这是系统会在switch语句中
//寻找default
//如果找到就执行 反之不执行
System.out.println("随机天");
break;
case "1":
System.out.println("春天");
break;
case "2":
System.out.println("夏天");
break;
case "3":
System.out.println("秋天");
break;
case "4":
System.out.println("冬天");
break;
}
}
}
三目运算符
结构:
判断条件 ? 值1 : 值2;
如果判断条件成立 就返回值1 反之 返回值2
public class demo05 {
public static void main(String[] args) {
//打印两个数的最大值
int a = 10;
int b = 15;
//定义一个变量 接收最大值
int max = 0;
max = (a > b) ? a : b;
System.out.println(max);
//求三个数的最大值
int n1 = 10;
int n2 = 6;
int n3 = 15;
//先求前两个数的最大值
//再跟第三个数比较
int m1 = (n1 > n2) ? n1 : n2;
int m2 = (m1 > n3) ? m1 : n3;
System.out.println(m2);
}
}
流程控制
while循环
结构
while(判断条件){
循环体(一条或多条语句)
}
当判断条件不成立时 循环结束
public class demo06 {
public static void main(String[] args) {
//打印100次 你开心吗?
//声明一个循环增量来判断是否到100了
int number = 0;
while (number < 100) {
System.out.println("你开心吗" + number);
//让循环增量自增
number++;
}
//累加思想
//求1到10的和(使用循环)
//声明一个循环增量
int i = 1;
//声明一个变量 保存结果
int sum = 0;
while (i <= 10) {
//求和
sum = sum + i;
i++;
}
System.out.println(sum);
//while最简单死循环
while (true) {
System.out.println("我是死循环");
}
}