JavaSE基本语法(二)

JavaSE基本语法(二)

字符型

char类型:表示一个字符 占2个字节

char a=’b‘; 用单引号表示

char类型 可以涵盖世界上所有书面语的字符 (因为计算机之所以可以显示各种字符,因为底层有一个编码表,每个字符在码表中有对象的十进制编号) ------Java默认使用Unicode编码

在Java中,对char类型字符运行时,直接当作对应编码中的整数来对待

char c=’a'+1 先把‘a'提升为int 然后在加1 结果为98

char a=’a'; ‘中’对应编码为20013

sout(a+0) 结果为97 sout(a) 结果为a;

基本数据类型转换

1.默认转换:因为数据之间需要传递,可能类型不一致

转换规则:容量小的类型默认转换为容量大的数据类型;数据类型按容量大小排序为:byte、short、char------>int------>long(8)------>float(4)------>double

注:因为小数在底层的存储与整数不同,所以4byte的float>8byte 的long

byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型

2.强制转换:容量大的数据类型转换为容量小的数据类型时,要加上强制转换符 int a=258; byte b=(byte)a; 结果为2;

在混合运算中,默认将小类型转为大类型。这就有可能造成 精度降低 或者数据溢出;

运算符

1.算术运算符:+,-,*,/,%,++,--

+:数+数、数+char、字符+字符

++,--:在前面是先运算后取值 在后面是先取值在运算

2.比较运算符:>,<,>=,<=,==,!=

比较运算符 返回true false

int a=10;int b=5;sout(a==b) 结果为flase

3.赋值运算符:=,+=,-=,*=,/=

shor t s = 3;

s=s+2; ①

 s+=2; ②

①和②有什么区别?

答:① short = short+int 所以编译器会报错

② short s=(short)(s+2) 隐进的强制类型转换

short a,b,C;

C=a+b;

这样也会报错 因为a+b在计算时 转换为int类型了

4.逻辑运算符:!,&,|,&&,||

运算符左右两边都是布尔值

&:前面无论真假,后面都进行运算

&&:当前面表达式返回false时,后面表达式不执行

(测试:a<b&&++b<c)

|:前面无论真假,后面都进行运算

||:当前面表达式返回true,后面不会执行

^:不同为true 相同为false

5.条件运算符(三目运算符)

(条件表达式)? 表达式1:表达式2; 条件表达式结果为true,运算后的结果是表达式1; 为false,运算后的 结果是表达式2

<!--6.位运算:自己看笔记-->

控制台输入

为啥?需要用户与程序实现交互式数据输入,但是我们程序现在还没有操作页面(UI) 所以java中 前期,提供了一个类(Scanner类),通过此类,可以让用户在控制台输入数据,并将数据读取到程序中

Scanner sc=new Scanner(System.in);

int a=sc.nextInt(); double b=sc.nextDouble() String str=sc.next();

在使用Scanner对象时,需要带上头文件:import java.util.Scanner;

流程控制

条件语句

● if

● if .. else

● if .. else if

● if .. else if .. else if .. else

● switch

在执行if语句时,首先会计算表达式的值,如果表达式的值为0,语句不会执行,若非0,则执行语句。

循环语句

● for

● while

● do .. while(先循环一次在 判断条件)

switch()//表达式为byte,short,int,char,String,枚举

{

case 1: ; break;

case 2: ; break;

default: ;

}

某个case分支如果没有提供break语句,则继续执行下一个case后的语句(穿透!)

当表达式与case不匹配,则执行default

若没有default,则跳出。

for循环中,把条件去掉即为死循环

for(int i=0;;i++)

循环嵌套

break&continue:只能用于循环

break是结束循环,跳出循环体,如果代码是两个for循环嵌套。因为break语句位于内层的for循环,因此,它会跳出内层for循环,但不会跳出外层for循环。 continue是结束本次循环,开启下一次循环。

结束外层循环

如果需要从多层循环跳出,则需要使用标签,定义一个标签,如label, 然后在需要跳出的地方,用break label就行了

public  class 循环 {
    public static void main(String[] args) {
        outloop:
        //循环标签,名字自定义
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 4; j++) {
                if (j == 2) {
                    //break;      //只能跳出当前循环
                    break outloop;        //跳过外层循环
                    //continue;       //跳到当前循环下重新开始
                    //continue outloop;    //跳到外层循环下重新开始
                }
                System.out.println(j);
            }
            System.out.println("test");
        }
        System.out.println("finish");
    }

运行结果:0

                  1

                  finish

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值