黑马程序员-----JAVA基础语法(一)

来源:互联网 发布:川沙数控编程培训uggd 编辑:程序博客网 时间:2024/05/21 22:28

                  ---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

JAVA语言基础组成:关键字、标识符、注释、常量和变量、运算符、语句、函数、数组。

1.关键字:



2.标识符:在程序中自定义的一些名称。比如:类名、方法名、变量名等。包含26个英文字母大小写,数字:0~9,符号:_$。

注意:1.数字不可以开头;2.不可以使用关键字。

3.注释:对程序做的注解说明,提高代码可读性的一种手段。

JAVA中的三种注释:单行(//内容)、多行(/*内容 */)、文档(/** 内容*/)。

4.常量:不能改变的数值。

   变量:其实就是内存中一个存储空间,用于存储常量数据。

   作用:方便于运算。因有些数据不确定,所以确定定该数据的名词和存储空间。

   定义变量----->数据不确定的时候定义。

   变量开辟空间需要的要素:数据类型、变量名称、变量的初始化值。

   变量的作用域和生存周期:

   作用域---->从变量定义开始到该变量所在的那对大括号结束(一对{}之间有效);

   生命周期---->从变量从定义开始到它所在的作用域时在内存中消失。

    数据类型:1.基本数据类型(四类八种):整型:byte(1个字节)、short(2个字节)、int(4个字节)、long(8个字节);

                                                               浮点型:float(4个字节)、double(8个字节);

                                                               字符型:char(2个字节);

                                                               布尔型:boolean();

    2.引用数据类型:数组([],array)、类(class)、接口(interface)。

    由低到高:byte,char,short--->int--->float--->long--->double;

    自动类型转换:低--->高,系统自动转换;

    强制类型转换:把一个高级别的数赋给一个低于该数的级别的变量。   

/** *练习:自动类型提升byte b = 3;int x = 4;x = x + b;//b会自动提升为int类型进行运算。强制类型转换byte b = 3;b = b + 4;//报错b = (byte)b+4;//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b。思考:byte b1=3,b2=4,b;b=b1+b2;//报错,强制类型转化,强制将b1+b2的结果转换为byte类型,再赋值给b.b=3+4; *  */

5.运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三元运算符


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

/** * 练习: * 1.int a,b,c;  * a=b=c=3; * int a=3; * a+=5;等同运算a=a+5; *  */

特点:该运算符的特点是:运算完的结果,要么是true,要么是false。

<pre name="code" class="java">public class Test10Demo {public static void main(String[] args) {  System.out.println(3>2);//true  System.out.println(3==2);//false }}

  ^(异或):两边结果一样,就为false;两边结果不一样就为true。

  &和&&的区别:&:无论左边结果是什么,右边都参加运算;

      &&:短路与,如果左边为false,那么右边不参与运算。

  |和||区别:|:两边都运算;

     ||:短路或,如果左边为true,那么右边不参与运算。

位运算是直接对二进制运算。

异或运算中,当一个数异或同一个数两次,结果等于它本身。如a^b^b=a

练习:

*练习: * 1.最有效率的方式算出2乘以8等于几?2<<3; * 2.对两个整数变量的值进行互换(不需要第三方变量) * @author Administrator * */public class Test10Demo {public static void main(String[] args) {System.out.println(2<<3);//位运算:左移2的3次幂int a=3,b=5;System.out.println("互换前a="+a+",互换前b="+b);a=a^b;b=a^b;//b=a^b^b=aa=a^b;//a=a^a^b=bSystem.out.println("互换后a="+a+",互换后b="+b);}}
三元运算符:

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

/** *练习: * 获取两个数中大数。 * @author Administrator */public class Test10Demo {public static void main(String[] args) {int x=3,y=4,z;z = (x>y)?x:y;//z变量存储的就是两个数的大数。System.out.println(z);}}

 6.流程控制语句: 顺序结构、判断结构、循环结构、选择结构

判断:

if语句三种格式:

1.if(条件表达式){
          执行语句;}
2.if(条件表达式){
       执行语句;}
else{
执行语句;}
3.if(条件表达式){
   执行语句;}
else if (条件表达式){
    执行语句;}

……
else{
执行语句;}

if语句特点:
a,每一种格式都是单条语句。
b,第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。
c,条件表达式无论写成什么样子,只看最终的结构是否是true 或者false;

选择:

switch语句
格式:
switch(表达式){
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}

switch语句特点:
a,switch语句选择的类型只有四种:byte,short,int ,char。
b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
c,结束switch语句的两种情况:遇到break,执行到switch语句结束。
d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

循环:

代表语句:while , do while , for

while语句格式:                                          do while语句格式:                       
while(条件表达式)                                        do{                                                                                                          

{                                                                       执行语句;
执行语句;                                                      }while(条件表达式);
}
do while特点是条件无论是否满足,循环体至少被执行一次。

格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{执行语句;}
注:
a,for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件, 为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件, 重复找个过程,直到条件不满足为止。
b,while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
c,最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

break(跳出)语句:应用范围:选择结构和循环结构。

当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号
continue(继续)语句:应用于循环结构。
作用:结束本次循环,继续下次循环。

注:
a,这两个语句离开应用范围,存在是没有意义的。
b,这个两个语句单独存在下面都不可以有语句,因为执行不到。
c,continue语句是结束本次循环继续下次循环。
d,标号的出现,可以让这两个语句作用于指定的范围。

import java.util.Scanner;/**一年有四季,春季:3 4 5夏季: 6 7 8秋季: 9 10 11冬季: 12 1 12根据用户输入的月份,给出相应的月份*/public class Test10Demo {private static Scanner sc;    public static void main(String[] args) {System.out.println("请输入月份:");    sc = new Scanner(System.in);    int month=sc.nextInt();//将输入的月份赋给变量if (month< 1||month>12)//判断System.out.println(month+"月没有对应的季节");//输出结果else if (month>=3&&month<=5)System.out.println(month+"月是春季");//输出结果else if (month>=6&&month<=8)System.out.println(month+"月是夏季");//输出结果else if (month>=9&&month<=11)System.out.println(month+"月是秋季");//输出结果elseSystem.out.println(month+"月是冬季");//输出结果}}
import java.util.Scanner;/**根据用户输入的数据,给出相应的星期*/public class Test10Demo {    private static Scanner sc;    public static void main(String[] args) {    System.out.println("请输入数据:");    sc = new Scanner(System.in);    int week=sc.nextInt();//将输入的数据赋给变量   switch (week){case 1:System.out.println(week+"对应的是星期一");break;case 2:System.out.println(week+"对应的是星期二");break;case 3:System.out.println(week+"对应的是星期三");break;case 4:System.out.println(week+"对应的是星期四");break;case 5:System.out.println(week+"对应的是星期五");break;case 6:System.out.println(week+"对应的是星期六");break;case 7:System.out.println(week+"对应的是星期日");break;default:System.out.println(week+"没有对应的星期");break;}}}
/**求1~100之间的奇数和、偶数和*/public class Test10Demo {    public static void main(String[] args) {    int Jsum=0;//奇数和    int Osum=0;//偶数和    for(int i=1;i<=100;i++)    {    if(i%2==0)    {    Osum+=i;    }    else    {    Jsum+=i;    }    }    System.out.println("1~100的奇数和是:"+Jsum);    System.out.println("1~100的偶数和是:"+Osum);    }    }

              ---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

0 0
原创粉丝点击