java编程基础
1、输出
System.out.println(); //输出()内容并换行; 1)ln代表换行 无ln不换行;2)()内为空不显示
System.out.print();//输出()内容; ()内不为空;
//范例1
System.out.print("太好了!");
System.out.println("马上就端午了!");
//输出内容
太好了!马上就过端午了!
//--空行--
//范例2
System.out.print("太好了!");
System.out.println("马上就端午了!");
//输出内容
太好了!
马上就过端午了!
//--空行--
2、转义字符
命令 | 释义 | 转义效果 |
---|---|---|
\t | 代表一个Tab 键的距离 | “\t ”–>" " |
\ | 加字符,直接转义字符 | “\.” -->“ .” |
\n | 代表换行 | System.out.print(“太好了!\n”); --> 太好了!换行 |
3、代码注释
代码注释是给程序员看的;注释不影响编译;不影响执行率
分类
- 单行注释
//加注释 写在行末或上一行
- 多行注释
/* */ 多行注释 注释内容大
导出注释: javadoc -d 文件名
4、变量
概念:在储存中开一块空间、储存中的一块空间
三要素
- 变量的值:储存空间中的数据
- 变量数据类型:不同的类型有分配不同的空间大小
- 变量名字(地址):更快定位数据,快速取出数据
具体数据类型
基础数据:
- 数字:
- int(4位)
- byte(1位)
- shrot(2位)
- long(8位)
- 浮点小数:
- double(8位)
- float(4位)
- 字符:
- char(2位)
引入数据
- 字符串
- String
**注意:**变量命名规则
1)只能用字母数字下划线(_)、$命名
2)不能使用数字开头、不能使用关键字
3)命名要见名知义,尽量使用小驼峰法命名
变量使用
- 申请空间;声明、定义变量
- 储存数据;给变量赋值
- 使用变量
{
int number; //声明变量
number = 1; //变量赋值
int numberTwo = 2;
System.out.println(number * numberTwo);
/* 打印number * numberTwo的值 */
}
变量转换
5、常量
**概念:**常量是储存中的一块空间
命名常量
使用final加数据类型加常量名(命名用_分割,全部大写)
字面常量
没有特殊声明类型,经常使用的数据
例如: 11 123 (int类型) ; WhoamI(String 类型) ; 7.80(double类型);
默认数据类型 1)数字整数默认为int型
2)字符串默认为String型
3)数字小数默认为double 类型
{
final int MATH_ONE = 13; // 定义常量MATH_ONE值是13; 常量只能定义一次,不能更新值
System.out.print("math的值是"+MATH_ONE);
}
6、输入函数
导包
import java.util.Scanner ; 写在类的的前面
定义输入器
Scanner sc = new Scanner.(Sysem.in);
使用
数据类型 sc = nextXxxx() xxxx是数据类型首字母大写
7、运算符
赋值运算符
符号:=
赋值规则从右向左赋值
例如: a = 3; // 把 3 赋值给a
复合赋值 :-= += *= ^= /=
符号左边变量等于更新前变量用等号的左边的符号同等号右边的变量进行运算并赋值给变量 (a += 1) == ( a = a+1)
算数运算符
符号:+ - * / %
例如: a+b //求和
算术运算是进行算术运算的运算符号
注意:/ 是 整除 ;%是取余 ;输出函数括号内字符串之间的 + 代表连接
关系运算符
符号:> < != ==
例如:a > b // 比较a、b的大小
**注意:**不同类型数据大多不能直接比较,字符串比较用Str1.equals(Str2)来比较
逻辑运算符
符号: && || !
&& 代表两者都(同真则真,有假则假);
|| 代表或者(同假则假, 有真则真);
! 代表取反
注意:逻辑运算和关系运算输出的都是boolean类型的值
位算符
符号:<< >> & | ^
a << b ; 相当于a^2b
b >> a ;相当于a/2^b
&和|可参与逻辑运算但是不支持短路 ,&可以取偶数 a&1 == 0;
^ 两次取得元数字 , a ^b ^b = a;
位运算:
<<相当于左移(二进制),左弃右曾0 例如:13 <<1 ,就是把13换算成2进制左移1位
>>相当于右移(二进制),左曾0右弃 例如:13 >>1 ,就是把13换算成2进制右移1位
& 按位与 换算二进制 ,,同位计算有0则0,同1则1 例如: 4 | 1 ,4 换算 100, 1换算 1,结果0
| 按位或 换算二进制,同位计算有1则1,同0则0 例如: 4 | 1 ,4 换算 100, 1换算 1, 结果 101,换算 5
^ 异或 换算二进制,同位计算相同为0,不同为1 4 ^5 ,4 换算 100, 5换算 101,结果1
运算优先级
- () 最先运算最内层
- 二级运算
- 一级运算
- < >
- && || ==
- =
if函数
结构
if(条件boolean){} / if(条件boolean){} else{}
类型
if(条件1){} ……if(条件n){}
if(条件1){} else if(条件2){} …… else if(条件n){}else{}
if(条件1){
if(条件2){
……
……
if(条件n){
}else{
}
}else{
}
}else{
if(条件3){
……
……
}else{
if(条件n){
}else{
}
}
}
执行规则
- if语句顺序执行
- 当有if成立则不往下执行else
/*
二十一点游戏
1、玩家(你)和BOOS(我)先各取两个10以下的正整数两个;
2、取一个公用数然后询问玩家是否还需要数字;
3、判断输赢;
规则:
1、三/四次取数之和不得打于21;
2、比较数字大小,值大者胜,相同庄家胜;
3、
*/
import java.util.Random; // 引用随机数
import java.util.Scanner; //输入导包
public class Tes5{
public static void main(String[] args){
Scanner sc = new Scanner(System.in); //定义输入器
Random random = new Random(); //定义数据
/*
*取两个随机数
*输出两个随机数,使用输出函数
*/
int m0 = (int)(Math.random()*10);
System.out.print("BOOS:21点游戏\n");
int m = (int)(Math.random()*10);
System.out.print("BOOS:我的第一个数是:");
System.out.print("*");
System.out.print("\n");
int ma = (int)(Math.random()*10);
System.out.print("BOOS:你的第一个数是:");
System.out.print(ma);
System.out.print("\n");
int m2 = (int)(Math.random()*10);
System.out.print("BOOS:我的第二个数是:");
System.out.print("*");
System.out.print("\n");
int mb = (int)(Math.random()*10);
System.out.print("BOOS:你的第二个数是:");
System.out.print(mb);
System.out.print("\n");
System.out.print("BOOS:公用数是:"+m0 +"\n" );
/*
让玩家输入是否继续,使用输入函数
判断胜负,嵌套if语句使用
*/
System.out.print("BOOS:你的二个数是:"+ma + mb+"\n" );
System.out.print("BOOS:你还需要数字吗?需要请输1\n");
int num =sc.nextInt();
if( num == 1 ){
int mc = (int)(Math.random()*10);
System.out.print("BOOS:你的第三个数是:");
System.out.print(mc);
System.out.print("\n");
int m3 = (int)(Math.random()*10);
System.out.print("BOOS:我的第三个数是:");
System.out.print(m3);
System.out.print("\n");
int u = ma + mb +mc+m0;
int v = m + m2 +m3+m0;
if( 22 > u ){ //简单if()else{}结构
if ( u>v ){ //多重if结构使用
System.out.print("你赢了\n");
}else
if ( u<v ){
System.out.print("Game Over!!!\n");
System.out.print("我的三个数是\n" + m+m3 + m2+"\n");
}
}else{
System.out.print("你飘了!!!\n");
System.out.print("我的三个数是\n" + m+m3 + m2+"\n");
}
}else{
int u1 = ma + mb+m0; // 定义数据类型并运算赋值
int v1 = m + m2+m0;
if( 22 > u1 ){ //嵌套if结构使用
if ( u1>v1 ){
System.out.print("你赢了\n");
}else{
System.out.print("Game Over!!!\n");
}
}else{
System.out.print("你飘了!!!\n");
System.out.print("我的三个数是\n" +m + m2+"\n");
}
}
}
}