语法基础
数据类型:
1.自动类型转换:
自动转换的条件
1.两种类型要兼容
2.放大转换:double型空间可以存入int型数据,因为double型变量分配的存储空间足够存储int型变量。
( 从左到右 ) char->int->long->float->double
(从右到左)byte->short->int->long->float->double
2.强制转换:
语法:(需要转换的数据类型)变量;
例如:
double num1 = 34.8976555;
int num2 = (int) num1; //运行结果为34
变量
先声明变量
变量赋值,初始化
调用变量
变量命名规则:
- 变量必须以字母,下划线“_”或“$”开头,除此两种符号外,不能包含任何特殊字符
- 变量可以包括数字,但是不能以数字开头
- 不能使用Java关键字,比如:int,class等
- Java变量名长度没有限制,但区分大小写
变量访问
1 变量作用域问题,
2 一条语句可以声明多个同类型变量:int a=2,b=3;
3 变量的操作必须与类型匹配
算数运算符
注意:++,--在变量之前之后的区别
变量之前:使用变量之前进行加1或减1
变量之后:变量使用完之后在进行加1或减1
逻辑运算符
&& 与:前后两者都是true,返回true
& 不短路与:作用与&&相同,但没有短路效果
|| 或:只要两个操作数中有一个是true,返回true
| 不短路或:作用与 || 相同,但是没有短路效果
!非:只需要一个操作数,如果操作数为true,则返回false;反之,操作数为false则返回true
^ 异或:两个操作数不同为true,否则返回FALSE
短路执行运算符前面的,后面的不会运算
案例:产生随机数
public static void main(string[] args){
//生成random对象
Random random = new Random();
//获得0-99之间的随机数
int r = random.nextInt();
//获得0.0-1.0之间的随机浮点数
double d = random.nextDouble();
//输出
System.out.println("产生0-99之间的随机整数为"+r);
System.out.println("产生0.0-1.0之间的随机浮点数是:"+d);}
选择结构
if(条件,不能放long){
//代码块
}
嵌套if条件结构:
例如判断输入的三个数字中的最大者
public static void main(String[] args) {
// TODO Auto-generated method stub
//生成Scanner对象从系统标准输入流中读取数据
Scanner input =new Scanner(System.in);
System.out.println("请输入数字1");
//获取整数
int x = input.nextInt();
System.out.println("请输入数字2");
int y = input.nextInt();
System.out.println("请输入数字3");
int z = input.nextInt();
int max = 0;
if(x>y) {
if(x>z) {
max = x;
}else {
max = z;
}
}else {
if(y>z){
max = y;
}else {
max = z;
}
}
System.out.println("最大值为"+max);
}
swich条件选择结构
swich(不能放Boolean,枚举){
case 常量1:
代码块;
case 常量2:
代码块;
break;
....
default:
代码块n:
break;
}
循环结构
while循环 &do…while循环区别
while(boolean表达式){
语句块//被重复执行的操作
}
do{
语句块// 被重复执行的操作
}while(boolean表达式)
//a=b是赋值;a==b是判断
- while循环先判断在执行;do-while循环先执行再判断
- 当循环条件不满足时,while一次不会执行,do-while会执行一次
for循环
语法格式:
for(表达式1;表达式2;表达式3){
//循环执行
}
原则上3个表达式都可以省略,但表达式后面的分号不能省略
break 跳出整个循环
continue 结束本次循环,接着执行下一次循环
案例:猜字游戏
int n = 10;//每局只能猜十次
int number = (int)(Math.random()*1000);//产生随机整数
int GuessNumber ;//用户猜的数
int blance = 0;//用户投的钱数
int Charge =10;//每局游戏十元
int debt;//钱数不够十元
Scanner input = new Scanner(System.in);
System.out.println("启动游戏需要十元");
blance = input.nextInt();
if(blance<Charge) {
debt=Charge-blance;
System.out.println("还差"+debt+"您就可以玩了,在投"+debt+"吧");
debt= input.nextInt();
blance+=debt;
System.out.println("哎呀投多了,找零"+(blance-Charge));
}
else
{
System.out.println("哎呀投多了,找零"+(blance-Charge));
}
System.out.println("太好了可以一起玩了,欢迎来玩猜数游戏");
while(true){
if(blance>=10){
System.out.println("您还有"+n+"次机会");
GuessNumber = input.nextInt();
if(GuessNumber>number)
{
System.out.println("猜大了,再小一点点");
}
else if(GuessNumber<number)
{
System.out.println("猜小了再大一点");
}
else
{
System.out.println("恭喜猜对了,投币再来一局吧");
}
n--;
if(n<=0) {
System.out.println("真遗憾一次也没有猜对,投币再来一次吧");
break;
}
}
}