JAVA基础语法(1)

1、注释

平时我们编写代码时,在代码比较少的时候,我们还是可以看懂自己写的代码,但是当代码量突然之间变多了的时候,我们就需要加上注释,以便让我们可以直接看出这段代码的意义。

注释并不会被执行,这是供我们这些开发人员看的。

书写注释是一个很好习惯

java中的注释有三种

单行注释;多行注释;文档注释。

使用方式见下面代码:

public class HelloWorld {
    public static void main(String[] args) {
        //输出一个HelloWorld
        System.out.println("Hello,World!");
​
        //假如需要注释的内容有很多行的时候就需要使用多行注释
         //多行注释的语法是 /* */
​
        /*
        * 多行注释
        * 多行注释
        * 多行注释
        * 多行注释
        */
​
        //文档注释是和javaDoc连接使用的,在里面可以添加一些说明 其语法格式如下:
        /**
         * 在这里面可以写一些对于自己代码的说明
         *它比多行注释第一行多了一个*
         */
​
​
    }
}

2、标识符

程序员指定的名字,例如类名、变量名、方法、接口、枚举等;构成标识符的字母有一定的规范要求,Java中的标识符命名规则如下:

1、区分大小写,MyName和Myname是不同的标识符

2、首字母不能是数字开头,可以是下划线_或者美元符$或字母

3、除了首字母外的其他字符,有下划线、美元符、数字、字母构成;

4、关键字不能作为标识符;

注意:此处的字母采用的是双字符Unicode编码,它包含了亚洲文字编码,如中文、韩文、日文等,但是我们在定义标识符是不建议使用中文。

命名规范:

驼峰命名法:

变量名、方法名:首字母小写,其余单词的首字母大写(小驼峰)

类名、项目名、接口名:首字母大写、其余单词的首字母大写(大驼峰)

包名:全部小写,用英文的. 隔开,实例:域名反写

edu.zut com.baidu

常量名:全部大写,单词之间用_隔开

IF_ADDR

3、关键字

50个关键字,全都是有java本身定义好的,不能挪作他用(都是小写)

abstractaccsertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

4、保留字

即不是关键字,又不能作为标识符使用,也不能在程序中使用的字符序列。goto与const

goto :在其他语言中叫做“无限跳转”,在java中不再使用,因为无限跳转语句会破坏程序结构;在java中,goto的替换语句可以通过break,continue、return实现有限跳转

const:其他语言中用于声明常量,java中声明常量使用的是public statis final方式

5、java分隔符

在java中用于分隔的字符,主要有分号; 大括号{} 和空白

1、分号,表示一条语句的结束

2、大括号,在java中,{}括起来的语句集合称为语句块或符合语句;在定义类或方法时,语句块也被用作分割类体或方法体

3、空白,在java中,元素之间允许有空白,空白数量不限;适当的空白可以改善对源代码的可读性。

6、变量

在java中,我们如何表示变化的数据? 利用变量

变量:变量即在程序运行过程中它的值是允许改变的量。

相当于把一段数据都赋值给一个简单好记的名称,这就是变量。

强调变量的命名规范

这里我们只讲局部变量;全局变量和静态变量都不讲。

变量的语法格式

数据类型 变量名称 【=初始值】;

变量名的定义要遵守标识符命名规范,同时在相关的作用域中不能有重复的变量名。变量的适用范围即变量的作用域,超过作用范围即无法使用。

变量的使用是通过其变量名称进行直接使用的。

局部变量的使用需要先赋值后使用。

Java中的基本数据类型

数据类型分为8种基本数据类型和引用数据类型

基本类型:数值型:整数类型:(byte,short,int,long ); 浮点类型(float,double)字符型(char)->也属于整数类型;布尔型(boolean);引用类型:类(class);接口(interface);数组(array)。

基本数据类型的长度和范围

数据类型大小/位可表示的数值范围
byte(字节型)8-128~127
short(短整数)16-2^15~2^15-1
int(整数)32-2^31~2^31-1
long(长整数)64-2^63~2^63-1
float(单精度)32-3.4E38~3.4E38
double(双精度)64-1.7E308~1.7E308
char(字符)160~65535
booleantrue/false

基本数据类型的变量定义使用时,需要注意,long类型的整数需要在初始值后面加l或L

float类型的小数需要在数值后面加F或f,double类型加不加d均可。同时,整数数值的默认类型是int;同时,char字符类型的使用需要使用单引号,同时char字符类型也属于数值类型,可与int等数值类型进行数学计算或者进行转换,其对应的数值取值范围为0--2^16-1

补充:

字符串:有字符组成的一串字符序列;java中常使用String表示字符串;例如:String name = “张三”;

当+连接字符串与其他数据时,此时+号不再是算数运算符,而是拼接的意思。

如:String s = "hello"+“!”;

练习:使用idea自定义类,在main方法种创建变量姓名(String)、年龄(int)、身高(double)、体重(float)、电话(long)、工资(double)并进行赋值,然后在控制台打印输出对应信息。

练习代码:

public class First {
​
    public static void main(String[] args) {
        // 姓名(String)、年龄(int)、身高(double)、体重(float)、电话(long)、工资(double)
        String name = "jack";
        int age = 15;
        double height = 1.71;
        float  weight = 66.6f;
        long phone = 64981981320l;
        double money = 12000;
        System.out.println("姓名:"+name+" 年龄:"+age+" 身高:"+height+" 体重:"+weight+" 电话:"+phone+" 工资:"+money);
    }
}

7、基本数据类型转换

在java中,定义好的基本数据类型可以根据需要进行类型转换,如int转double,float转int等。

根据数据能否自动完成类型转化分为:自动类型转换与强制类型转换。

自动类型转换

类型转换自动完成,不需要加以干预。总体原则是小范围的数据转大范围的数据自动完成。

转换顺序:byte-short-int(char)-long-float-double

注意:char转换较为特殊,参考ASCII码表,char转int自动转,int转char强制转

强制类型转换

即大范围的数据转成小范围类型的时候,不会自动转换,需要进行强制转换;强制类型转换可能会造成数据进度的丢失或者数据溢出。

强制类型转换格式: (强转的数据类型)强转的数据;

数据转换注意:

1、不能对boolean类型进行类型转换;

2、在把容量大的类型转换为容量小的类型时必须使用强制类型转换;

3、转换过程中可能导致溢出或者精度损失;

4、浮点数到整数的转换是通过舍弃小数部分得到的,而不是四舍五入;

5、条件是转换的数据类型必须是兼容的;

6、整数的默认类型时int long a = 100L;

7、浮点类型不存在这种情况,因为在定义float类型时必须在数字后面加上F或f;

8、使用long类型的数据一定要在数值后面加上L;一般不加小写l,因为l和1很像。

练习:

着重练习int与char类型之间的转换。

定义char c = ‘A’; 转换成int类型

定义int i = 100,转换成char类型

定义double d = 101.25,转换成int类型,并观察数据是否丢失;

定义int i2 = 10002,转换成long 类型,short类型以及byte类型,并观察转换成byte类型等。。。。

练习代码:

    public static void main(String[] args) {
        /*
        * 定义char c = ‘A’; 转换成int类型
          定义int i = 100,转换成char类型*/
        char c = 'A';
        int a = c;
        int i = 100;
        char b = (char) i;
        System.out.println("c的int类型数值为:"+a+" i的char类型字符为:"+b);
​
        //定义double d = 101.25,转换成int类型,并观察数据是否丢失;
        double d = 101.25;
        int e = (int)d;
        System.out.println("d的int类型数值为:"+e);
​
        //定义int i2 = 10002,转换成long 类型,short类型以及byte类型,并观察转换成byte类型等。。。。
​
        int i2 = 10002;
        long l = i2;
        short s =(short) i2;
        byte b1 = (byte)i2;
        System.out.println("i2的long类型数值为:"+l+" i2的long类型数值为:"+s+" i2的long类型数值为:"+b1);
​
​
    }

8、运算符

Java中,运算符大致分为算术运算符,关系运算符,逻辑运算符,位运算符和其他运算符。

算术运算符

用于数值类型数据的算术运算,按照操作数的不同,分为一元运算符和二元运算符。

一元运算符:++、--;

二元运算符:+ 、-、*、/、%;

算术赋值运算符:+=、-=、*=、/=、%=;

注意:++、--的使用,当++参与运算时,++在前与在后是不同的;

在后表示先赋值后运算,++在前表示先运算再赋值。

比较运算符:>、<、>=、<=、==、!=;

比较运算符合的时候正好和boolean结合使用。

逻辑运算符:&& 并且、|| 或者、

位运算符:

运算符运算规则范例结果
&1&0,0&0,1&10,0,1
|1|0,0|0,1|11,0,1
^异或1^0,0^0,1^11,0,0

^运算规律:

1^0 = 1,0^0 = 0,任何数和0相异或得到的都是这个数本身;

0^1 = 0,1^1=0,任何数和1相异或得到的是这个数的相反;

一个数自己和自己异或得到的是0;

三目运算:?:

定义:对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。

运算符的优先级:

优先级运算符
1()
2!、+(正)、-(负),++,--
3* 、/、%
4+(加)、-(减)
5<、<=、>、>=
6==、!=
7^
8&&
9||
10?:
11=、+=、-=、*=、/=、%=

9、java流程控制

选择结构

if语句:if(){}

当()里面的表达式为真时执行{}里面的内容

 //并列if判断 无论上面的条件是否成立,下面的if都会进行判断
 if(a<b){
    System.out.println("a小于b");
 }
  if(a>b){
    System.out.println("a大于b");
 }
  if(a==b){
    System.out.println("a等于b");
 }

if …else

  //上面条件成立时下面就不再判断
 if(a<b){
    System.out.println("a小于b");
 }else{
    System.out.println("a不小于b");
 }

if…else if…else

if(a<b){
    System.out.println("a小于b");
 }else if(a>b){
    System.out.println("a大于b");
 }else{
    
    System.out.println("a等于b");
 
}

多条件判断

if(1<a&&a<5){
    System.out.println("并且是&&,两个条件都为真");
}
if(a==1||a==3){
    System.out.println("或者是||,两个条件至少有一个是真");
}
if(a!=3||a!=4){
    System.out.println("!=代表不等于");
}

练习: 定义变量性别(sex)以及收入(salary)如果是sex为true并且薪水大于8000就输出高富 帅,否则就是穷屌丝,如果sex为false,并且薪水大于 8000,输出白富美否则就是.......

练习代码:

public static void main(String[] args) {
        //输入
        Scanner sc = new Scanner(System.in);
        //输入性别,true或false
        Boolean sex = sc.nextBoolean();
        //输入薪水
        int salary = sc.nextInt();
        //判断
        if(sex .equals(true)&&salary>=8000){
            System.out.println("高富帅");
        }else if(sex.equals(true)&&salary<8000){
            System.out.println("矮矬穷");
        }else if(sex.equals(false)&&salary>=8000){
            System.out.println("白富美");
        }else{
            System.out.println(".......");
        }
    }

定义变量成绩(score),根据成绩判断,如果成绩大于90,输出优秀,[80,90)输出良好,[60,80)输出及格,60以下输出不及格

练习代码:

 public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        //成绩大于90,输出优秀,[80,90)输出良好,[60,80)输出及格,60以下输出不及格
        if(a>=90){
            System.out.println("优秀");
        }else if(a>=80&&a<90){
            System.out.println("良好");
        }else if(a>=70&&a<80){
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }
    }

switch case语句

switch后边的表达式只能是整型字符型(byte, short,int,char),枚举类型,其中jdk7之后支持字符串型

10、Scanner类

属于引用类型,创建的时候需要固定格式

数据类型 变量名 = new 数据类型();

需要导入所在的包:import java.util.Scanner;

创建对象:Scanner sc = new Scanner(System.in);

获取输入的整数:int s = sc.nextInt();

获取输入的字符串:String str = sc.nextLine();

注意sc.nextInt()和sc.nextLine()会中断程序

练习:使用switch计算每个月有多少天 (随机年份2001 年到3033年,月份在控制台输入1-12,如果输入的月份不在1-12则提示用户重新输入月份,闰年:能被4整除 但不能被100整除,或者能被400整除)

练习代码:

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = scanner.nextInt();
        System.out.println("请输入月份:");
        int m = scanner.nextInt();
        int day = 0;
        switch (m){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                day = 31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                day = 30;
                break;
            case 2:
                if(year%4==0&&year/100!=0||year%400==0){
                    day = 29;
                }else {
                    day = 28;
                }
        }
        System.out.println(day);
​
    }

11、循环结构

while循环和do–while循环

while循环 格式:

当条件为真时执行循环体中的内容;

while(条件){
    语句;
}

do-while循环

先执行do中的内容,然后进行条件判断,如果条件为true, 执行循环体中的内容

在do中定义的变量只能在do中使用,不能在条件中和 do–while外进行使用

格式为 :

int b = 0;
do{
    b = 13;
    System.out.println(111111);
}while(b<15);

for循环

for循环的格式:

 //如下:先定义一个变量i,当i<10时执行循环内容,执行一次i+1
    //在for循环中定义的i只能在for循环中使用
    for(int i=0;i<10;i++){
        System.out.println("hello");
}

break :跳出当前循环;

continue:跳出当前此次循环,下次循环继续;

练习:1、利用while循环和do..while循环 输出字母a-z 、A-Z

public static void main(String[] args) {
        char c = 'a';
        char l ='A';
        while(c<=122){
            System.out.println(c);
            c++;
        }
        do{
            System.out.println(l);
            l++;
        }while(l<=90);
    }

2、利用while或do....while循环,结合scanner,从控制台获取输入的整数,从这个值开始,依次与这个值之后的n个自然数相加,当和超过100时结束,输出此时的值和自然数的值。

  
 public static void main(String[] args) {
        int a,sum = 0,i = 0;
        Scanner sc = new Scanner(System.in);
        a = sc.nextInt();
        i = a;
        while(sum<=100){
            sum = sum+a;
            a++;
        }
        System.out.println("此时的值是:"+a+" 输入的自然数的值是:"+i);
    }

3、猜数字游戏,利用random随机产生一个[50,100]之间的数字,用户在控制台输入一个数字,如果用户输入的数字等于随机产生的数字,则输出游戏结束,否则,比较用户输入的数字,告诉用户输入的数字是大于随机数还是小于随机数,之后用户重新输入继续猜数字,直到猜对为止

public static void main(String[] args) {
        System.out.println("猜数字游戏开始");
        System.out.println("输入1-100之间的数据:");
        //创建Random类变量
        Random ran = new Random();
        int a = ran.nextInt(100)+1;
        //创建Scanner类变量
        Scanner in = new Scanner(System.in);
        
        while(true) {
            int b = in.nextInt();
            if(number>a) {
                System.out.println("您猜测得数字较大,请继续猜测!");
            }else if(b<a) {
                System.out.println("您猜测得数字较小,请继续猜测!");
            }else {
                System.out.println("恭喜你,猜对了!");
                System.out.println("游戏结束!");
                break;
            }
        }
        
    }
​

4、利用for循环计算100文钱能买多少只鸡?5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱买三只小鸡,问100问钱买100只鸡,那么公鸡、母鸡、小鸡各多少只?

 public static void main(String[] args) {
​
        for(int i=1;i<=20;i++){
            for (int j=0;j<34;j++){
                    if(i*5+j*3+(100-i-j)/3==100&&(100-j-i)%3==0){
                        System.out.println("公鸡:"+i+"只,母鸡:"+j+"只,小鸡:"+(100-i-j)+"只");
                    }
                }
            }
 }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值