java基础知识巩固
Java所有基本数据类型都是关键词
Long、float等正在定义数值时末需要加上L或者F
整型
•Byte
•Short
•Int
•Long
拓展
1byte(字节)=8bits(位)
1024bits=1kb
1024kb=1mb
浮点型
•Folat(单精度)
•Double(双精度)
字符型
•Char
布尔型
•Boolean
基本类型转化问题
基本原则:小转大 直接转 ,大转小,强转
例:byte b1 = (byte) 128//需要强转;
运算符
比较运算符
符号 | 说明 |
---|---|
> | 大于 |
== | 等于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
注意事项:不等于和等于既可以用作于基本数据类型之间的比较,还可以用做引用数据类型之间的比较
布尔逻辑运算符
符号 | 说明 |
---|---|
&& | 短路与 |
& | 逻辑与 |
^ | 异或 |
! | 非 |
逻辑与和短路与的用法:
&&(短路与):在项目运行中,如果左侧表达式不成立,则不运行右侧表达式
& (逻辑与):无论左侧表达式是否成立,都不会影响右侧表达式的执行
算数运算符
符号 | 说明 |
---|---|
+ | 两数之和 |
- | 两数之差 |
* | 两数之积 |
/ | 两数之商 |
% | 一个数对另一个进行取余 |
引用数据类型
java的引用三大数据类型
1.类的引用
2.数值的引用
3.接口的引用
方法的作用
1.减少代码的编写,提高代码复用率
2.便于统一管路
3.使得代码结构更加清晰
遇到的第一个异常
随机数的获取
//随机获取一个数(0.0-0.99)
double d = Math.random();
//获取某个区间的值(例:[10,45])
int r1 = (int) (Math.random*(45 - 10 + 1)) + 10;
条件分支
- if…()else
- switch
//if...else的三种结构
if(i > 1){
//结果
}
if(i > 1){
//结果一
}else{
//结果儿
}
if(i > 10){
//结果一
}else if( i < 20){
//结果二
}else if(i < 30){
//结果三
}else{
......
}
注意事项:
在switch中,switch可筛选的值只能是String(1.7+)、int、char、byte、Enum等数据类型
//例 : 对学生成绩的筛选
System.out.println(Math.random());
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的成绩");
int score = sc.nextInt();
switch(score / 10) {
case 10:
case 9 :
System.out.println("你的成绩是A");
break;
case 8:
System.out.println("你的成绩是B");
break;
case 7:
System.out.println("你的成绩是C");
break;
case 6:
System.out.println("你的成绩是D");
break;
default:
System.out.println("你的成绩是E");
}
条件循环
- for循环
- while循环
- do…循环
- foreach
- 递归
for循环案例
//打印1-10
for (int i = 1; i <= 10; i++) {
System.out.print(i);
//打印99乘法表
for(int j = 1; j <= 9; j++){
for(int x = 1; x <= j; x++){
System.out.print(j+"*"+x+"="+(j*x)+" ");
}
System.out.println();
}
}
//打印平行四边形
//外层打印行
for (int i = 1; i <= 6; i++) {
//空格
for (int j = 1; j <= 6 -i; j++) {
System.out.print(" ");
}
//内层打印列
for (int x = 1; x <= 6 ; x++) {
System.out.print("*");
}
System.out.println();
}
初始数组
数组的初始化
//数组的初始化
int[] arr;
//数组的静态初始化
int[] arr1 = {12,3,4,5,6};
//数组的动态初始化
int[] arr 2 = new int[3];
//对数组元素的取出
System.out.println(arr[1]);
//对数组中所有元素进行依次取出
for(int i = 0; i < arr.length;i++){
System.out.print(arr[i]+" ");
}
项目说明:
对DNF装备进行强化,给出危险提示和成功率,强化后给出显示的装备升级或者失败降级,成功后可选择继续强化,大于或等于10级失败则装备报废
package com.day03.mod;
import java.util.Scanner;
/**
* 要求输入装备的原始等级, 输入1执行强化,根据原始等级以及强化的成功率,显示装备的强化结果
*
* @author Administrator
*/
public class Dnf {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("您现在多少级了?(1-16)");
// 等级
int grade = sc.nextInt();
// 成功率
double d = 0.0;
while (true) {
if (grade < 3) {
d = 1;
} else if (grade < 4) {
d = 0.95;
} else if (grade < 5) {
d = 0.90;
} else if (grade < 6) {
d = 0.80;
} else if (grade < 7) {
d = 0.75;
} else if (grade < 8) {
d = 0.621;
} else if (grade < 9) {
d = 0.537;
} else if (grade < 10) {
d = 0.414;
} else if (grade < 11) {
d = 0.339;
} else if (grade < 12) {
d = 0.28;
} else if (grade < 13) {
d = 0.207;
} else if (grade < 14) {
d = 0.173;
} else if (grade < 15) {
d = 0.136;
} else {
d = 0.101;
}
System.out.println("你现在" + grade + "级,成功率为" + d + "。是否需要强化 如果需要,请按1");
int i = sc.nextInt();
double success_rate = Math.random();
System.out.println("正在强化中 ,请稍后....");
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (1 - success_rate < d) {
System.out.print("强化成功 ");
grade++;
} else if (grade < 7) {
System.out.print("强化失败 ");
grade = grade - 1;
} else if (grade < 10) {
System.out.print("强化失败 ");
grade = grade - 3;
} else {
System.out.print("强化失败 ");
grade = 0;
}
System.out.println("你现在的等级是" + grade);
System.out.println("是否继续强化\n 1.继续\n 2.退出");
i = sc.nextInt();
if (i == 2) {
break;
}
}
System.out.println("game over!");
}
}
运行结果
银行登录
*项目说明:*在控制台输入账号和密码,密码输入错误三次,即把账号冻结,密码账户相同,即登录成功(come in)
package com.day03.mod;
import java.util.Scanner;
/**
* @author Administrator
*/
public class Bank {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Please enter your card number ");
int id = sc.nextInt();
System.out.println("Please input a password ");
int pwd = sc.nextInt();
int count = 3;
while(true) {
if(id != 8963 || pwd != 3212) {
count--;
System.out.println("Wrong account or password, please re-enter ,You still have "+ count +" opportunities");
}else {
System.out.println("come in");
break;
}
if(count == 0) {
System.out.println("today is more,please next");
break;
}
System.out.println("Please re-enter your account and password ");
id = sc.nextInt();
pwd = sc.nextInt();
}
}
}
运行结果