第一周学习内容总结:
一:初步了解Java
(1)Java的优势:
·跨平台 ·分布式 ·多线程 ·安全,健壮
·面向对象 ·高性能
(2)JDK的安装与环境的搭建
(3)DOS命令:
1.切换目录:cd /d 目标目录
2.编译:javac -d . java源文件名称
3.运行:Java 包. 类名
二:数据类型
(1)基本类型:
a 数值型:整型:byte,short, int,long;(范围小到大)
浮点型:单精度(float),双精度(double)
b 字符型:char(两个字节,范围0~66535,字符' ' ,字符串“ ”)
c 布尔型:boolean (true | flase)
(2)引用型:·类(class) ·接口(interface) ·数组 ·枚举
注意:
整型常量默认为int型,long后加'l'或'L'
浮点型默认为double型,如需声明为float则必须在数字后加’f‘或’F‘
(3)数据类型转换
a:自动转换:小范围转大范围
eg: long x=5;
b:强制转换:大范围转小范围
小范围型 变量名=(小类型)大范围数据类型 eg:int a=(int) 5L;
eg: package org.west;
public class QiangZhuan {
public static void main(String[] args) {
byte a;
int b=298;
a=(byte) b;
System.out.println("b="+b);
System.out.println("a="+a);
}
}
三:运算符
(1)自增与自减:++,- -
eg:a++(只保存旧值,再自增,再运行)
++a(直接自增,自增后运算)
自增自减原理一样
(2)短路与&&,非短路与&
短路与&&(如果前面一个判断结果为flase,则后面不在执行)
非短路与&(如果前面判断 为flase,后面继续执行)
(3)短路||,非短路|
短路||(只要前面结果为true,则后面不再执行)
非短路|(每个逻辑运算都执行)
eg:(或与非原理相似,以&和&&举例)
package org.west;
public class DemoYu {
public static void main(String[] args) {
int x=0;
int y=0;
int z=0;
boolean a,b;a=x>0 & y++>1;
System.out.println(a);
System.out.println("y="+y);
b=x>0 && z++>1;
System.out.println(b);
System.out.println("z="+z);
}
}
四:位运算符
·按位与&:两个二进制结果为1,结果才是1,其余结果都为0.
·按位或|:只要有一个二进制为1,结果就是1 ,两个都为0,结果是0.
·按位异或^:相同的两个二进制位结果为0,不同则为1.
·按位取反~:0变1,1变0.
·右移>>:右移后,左边的二进制位用符号位来补,正数补0,负数补1。
·左移>>:左移后,右边的二进制位用0来补。
·无符号右移:右移后左边的二进制位用0来补。
·三目运算符:结果返回 boolean值的表达式?“结果为true输出”:“结果为flase输出”。
五:语句
a:if条件语句
格式: if (条件语句){
代码块;
}
eg:package org.west.www
public class Example06 {
public static void main(String[] args){
int x=1,y=3;
if (x==y){
System.out.println("1");
}
else{
System.out.println("0");
}
}
}
b:if.......else语句
if(判断条件){
执行语句1
...............
}else{
执行语句二
................
}
eg:package org.west;
public class Example02 {
public static void main(String[] args) {
int sum=19;
if(sum%2==0){
System.out.println("num是一个偶数");
}else{
System.out.println("num是一个奇数");
}
}
}
c:if......else if ........else条件语句
格式: if (判断条件1){
执行语句1
}else if(判断条件2){
执行语句2
}
..............
else if(判断条件n){
执行语句n
}else{
执行语句n+1
}
eg:package org.west;
import java.util.Scanner;
public class IfDemo {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入考试成绩");
int grade=scan.nextInt();
if(grade>90){
System.out.println("优秀");
}else if(grade>80){
System.out.println("良好");
}else if(grade>70){
System.out.println("一般");
}else if(grade>=60){
System.out.println("及格");
}else{
System.out.println("该成绩为差");
}
}
}
d:switch语句
格式:switch(表达式1){
case 目标值 1:
break:
case 目标值 2:
break;
..............
default:
执行语句n
break;
}
eg:package org.west;
import java.util.Scanner;
public class SwitchDemo {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入星期:");
int week=scan.nextInt();
switch(week){
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("你输入的星期有误");
}
scan.close(); // 关闭
}
}
e:while循环语句
格式: while(循环条件){
执行语句
..............
}
eg:
package org.west;
public class WhileDemo {
public static void main(String[] args) {
int x=1;
while(x<=4){
System.out.println("x="+x);
x++;
}
}
}
f:do while循环语句
格式:do{
执行语句
...............
}while(循环条件);
eg:package org.whiledemo;
import java.util.Scanner;
public class DoWhile {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int score=0;
do {
System.out.print("请输入考试成绩:");
score=scan.nextInt();
} while (score<60);
System.out.println("恭喜,考试通过!");
scan.close();
}
}
g:for循环语句
格式:for(初始化表达式;循环条件;操作表达式){
执行语句
...................
}
eg:package org.west;
import java.util.Scanner;
public class ForDemo {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入累加的数");
int x=scan.nextInt();
int sum=0;
for( int i=1;i<=x;i++){
sum+=i;
}
System.out.println("累加的和是:"+sum);
}
}
h:语句嵌套使用
eg:(1)for语句嵌套使用
用*打印一个矩形
package org.west;
import java.util.Scanner;
public class Forloop {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入矩形的长");
int h=scan.nextInt();
System.out.println("请输入矩形的宽");
int d=scan.nextInt();
for(int x=1;x<=h;x++){
for(int y=1;y<=d;y++){
System.out.print("*"+"\t");
}
System.out.println( );
}
}
}
补充知识点:
(1) ·在计算机的运算中都是以“补码”的形式运算的
·正数的原码,反码,补码相同
·负数的反码是其原码的除符号位以外的二进制位取反
·负数的补码是反码加1
·符号位是最左边的二进制位,0代表正数,1代表负数
(2)循环语句中:
·break代表跳出当前循环
·continue代表终止此循环
总结程序(结合当前学过的所有语句)
package org.game;
import java.util.*;
public class GameDemo {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
Random r=new Random(); // “随机种子”,用来要骰子
int money=1000; // 目前总赌本
String isPlay=""; // 记录是否继续玩
int cash=0; // 用来记录当前输入的赌本
do {
System.out.println("开始本游戏~~~,你的本金是"+money);
System.out.println("请选择:1 押大 2 押小");
int choice=scan.nextInt(); // 玩家选择
boolean flag=true;
do{
if(flag){
System.out.print("请输入赌本:");
cash=scan.nextInt(); // 玩家输入赌本
flag=false; // 改变标志位
}else{
System.out.println("余额不足,当前总余额为:"+money+",请重新输入");
cash=scan.nextInt(); // 玩家输入赌本
}
}while(cash>money);
int mice=r.nextInt(16)+3; // 开始摇骰子
System.out.println("开骰子,当前骰子点数为:"+mice);
switch(choice){
case 1: // 押大
if(mice>10){
money+=cash; // 赢得资金
System.out.println("恭喜,您本局赢了"+cash+"元,目前总赌本为:"+money);
}else{
money-=cash; // 输了资金
System.out.println("不好意思,您输了"+cash+"元!目前总赌本 为:"+money);
}
break;
case 2: // 押小
if(mice<=10){
money+=cash; // 赢得资金
System.out.println("恭喜,您本局赢了"+cash+"元,目前总赌本为:"+money);
}else{
money-=cash; // 输了资金
System.out.println("不好意思,您输了"+cash+"元!目前总赌本为:"+money);
}
break;
default:
System.out.println("选择错误!");
break;
}
System.out.print("是否继续y/n:");
isPlay=scan.next();
} while ("y".equals(isPlay));
scan.close();
}
}
第一次总结完
2017.11.28