java的语法基础(初学)
前言
上一篇了解的java程序运行的入口函数和package的作用,这节介绍java的语法要点:语法关键字,8个基本数据类型,循环和分支语句。
若想进一步学习更多的java语言知识,推荐一本电子书:JAVA语言程序设计_基础篇
链接:https://pan.baidu.com/s/1aAXbPtwfoQfFWw1oBNQOfQ
提取码:finl
一、语法关键字
java语言中,被设定为语法关键字的如下表这些单词,这些单词不能用来作为变量名。每个关键字具有一定的功能含义。
二、8个基本数据类型
将以下代码复制到JavaGrammar.java文件中并运行,练习8个基本数据类型的用法。
package com.my.first; // package 必须放在第一行,
//com.my.first 指明了这个文件的代码在项目根下的 com/my/first位置
// JavaGrammar 是类名称,必须和文件名称保持一致;class是类修饰符,表明JavaGrammar是一个类。
//public 是修饰类JavaGrammar的访问权限(可见性),public表示其他包的类也可以使用这个类。
public class JavaGrammar {
//main函数是java程序的入口,public static void main(String[] args) 是规定的标准写法。String[] args、是程序在运行时可接受的参数。
public static void main(String[] args) {
/**java 中8个基本数据类型为 */
byte b; //字节类型,指的是是一个字节,也就是8个bit ,1个byte占8位
char level; //字符类型,1个char站16位,存储Unicode码,1个char能表示一个字符(中文,英文或其他国家文字都可以),一个char可以表示一个 ’a‘ 或 一个 ’啊‘ 或 ’-‘ 等
short age; //短整型数字类型,1个short占16位空间,最大可表示65536(无符号情况下),数据范围可表示 -32768~32767 之间的整数。
int days; //整型,1个int占32位,可表示 负2的31次方(-2147483648) 到 正2的31次方-1(2147483647) 之间的整数,最大可表示2的32次方-1(无符号情况下)
long id; //长整型,1个int占64位,可表示 负2的63次方(-9223372036854775808) 到 正2的63次方-1(9223372036854775807) 之间的整数,最大可表示2的64次方-1(无符号情况下)
float score; //单精度浮点类型,1个float占32位,可表示3.4e-45~1.4e38,
double rate; //双精度浮点类型,1个double占64位,可表示4.9e-324~1.8e308
boolean passed; //布尔型, 1个boolean理论上占1位,实际在虚拟机中可能占32位。
System.out.println("byte型:");
/**byte 型赋值*/
b = 'a'; //
System.out.println(b); // 字母a对应Unicode码是97
b = 1 ;
System.out.println(b);
// b = '啊'; //不可以将汉字赋值给byte;
System.out.println("char:");
/**char 型赋值*/
level = 'a';
System.out.println(level);
level = 1111;
System.out.println(level);//Unicode码为1111对应的字符为ї,
level = '啊';
System.out.println(level);
System.out.println("short:");
/**short 型赋值*/
age = 'a';
System.out.println(age);// 字母a对应Unicode码是97
age = 1111;
System.out.println(age);
age = '啊';
System.out.println(age);// 字符 啊 对应的Unicode码为21834
System.out.println("int:");
/**int 型赋值*/
days = 1111;
System.out.println(days);
//days = 1111111111111; // 将过大的整数赋值给int会编译不通过
System.out.println("long:");
/**long 型赋值*/
id = 111111111111l; //为long型赋值最后加L
System.out.println(id);
System.out.println("float:");
/**float 型赋值*/
score = 3.1415926535897931f; //为单精度浮点型赋值,最后加f
System.out.println(score); // 结果是3.1415927
/**double 型赋值*/
rate = 3.1415926535897931d;//为双精度浮点型赋值,最后加d
System.out.println(rate);// 结果是3.141592653589793
System.out.println("boolean:");
/**boolean 型赋值*/
passed = true;//只能是true 或 false
System.out.println(passed);// 结果是3.141592653589793
}
}
三、循环代码块写法
循环写法常用的是2种:for循环和while循环,
如果知道循环次数的,一般用for循环
不知道循环次数的,一般用while循环
在上面工程的com.my.first包下面,新建一个类,名为:Loop,复制以下内容:
运行查看结果,体验2种循环的使用区别。
package com.my.first;
import java.util.Arrays;
import java.util.Random;
public class Loop {
public static void main(String[] args) {
//每一种基本数据类型都有数组类型
int[] ages = new int[10]; //创建一个具有10个元素的int型数组
/**for 循环 : 实现为数字ages的每个元素赋值*/
System.out.println("ages初始化前的值:");// println 打印后自动再打印一个换行
for(int i=0; i<10; i++){
System.out.print(ages[i]); // print 打印数据
System.out.print(','); // print 打印一个逗号
}
for(int i=0; i<10; i++){ //i 是循环计数器,从0开始,每次执行完后i增加1,直到不满足 i<10(也就是1>10)时停止循环
ages[i] = i; //数组,通过下标访问第N个元素的方法 ages[n];
}
System.out.print('\n');
System.out.println("ages初始化后的值:");
for(int i=0; i<10; i++){
System.out.print(ages[i]);
System.out.print(',');
}
/**while 循环 :找一个能整除15的整数*/
System.out.print('\n');
boolean flag = true;
int a = 15,b=0,k=0;
while( flag ){ //while循环,当flag == true 时执行循环体的内容,当flag=false时,停止执行循环
k++;
b = new Random().nextInt(15);//获取一个0-15之间的随机整数
if(a%b == 0){ // % 的含义是 求 a除以b的余数
flag = false;
System.out.println("经过"+k+"次,找到能整除15的数字:"+b);
}
}
}
}
四、分支代码写法
常用的分支代码有2种写法:
1、使用if-else:一般条件比较少时使用,使用时概率最大的放前面。
2、使用switch:条件比较多时使用,性能比if-else好。
在上面工程的com.my.first包下面,新建一个类,名为:Branch ,复制以下内容:
运行查看结果,体验2种分支语句的使用区别。
package com.my.first;
public class Branch {
public static void main(String[] args) {
/**使用if-else,根据分数判断等级*/
float sore = 89;
if(sore >=90 && sore <=100){
System.out.println("你的等级是A");
}else if(sore < 90 && sore >=80){
System.out.println("你的等级是B");
}else if(sore < 80 && sore >=70){
System.out.println("你的等级是C");
}else if(sore < 70 && sore >=0){
System.out.println("你的等级是D");
}else{
System.out.println("数据不合法");
}
/**使用 switch分支,根据等级判断 优良中差*/
char flag = 'D';
switch (flag){
case 'A':{
System.out.println("优");
break;
}
case 'B':{
System.out.println("良");
break;
}
case 'C':{
System.out.println("中");
break;
}
case 'D':{
System.out.println("差");
break;
}
default:{
System.out.println("输入有问题");
}
}
}
}