一. 数据类型与常变量
1. 基本数据类型
基本数据类型(8种):整型(type,short,int,long)、字符型char、浮点型(float,double)、布尔类型boolean。注意布尔类型是不参与数据类型转换的。
2. 数据的自动类型转换
数据的自动类型转换:是指将数据范围小的数据转换成数据范围大的数据,在转换过程中不会有数据精度与数据的丢失。以下是数据的自动类型转换的情况。
--byte类型可以自动转换为:short、int、long、float、double
--short类型可以自动转换为:int、long、float、double
--char类型可以自动转换为:int、long、float、double(char、byte与short类型不可以进行自动类型转换)
--int类型可以自动转换为:long、float、double
--long类型可以自动转换为:float、double
--float类型可以自动转换为:double
3. 数据的强制类型转换
数据的强制类型转换:是指数据范围大的数据要转换为数据范围小的数据的过程中可能会产生数据的精度与数据的丢失,在编译过程中是不合法的,所以需要通过使用强制转换符来进行数据的强制类型转换。数据转换优先级与数据范围大小关系如图1所示。
强制类型转换的情况如下:
--int类型转换为char、short、byte类型
--long类型转换为int、char、short、byte类型
--float类型转换为long、int、char、short、byte类型
--double类型转换为float、long、int、char、short、byte类型
图1: 数据类型范围大小关系图
4.常量与变量
1.常量是指程序在程序运行过程中不能发生改变的量。
2.变量则可以在程序运行过程中发生改变。
3.变量的定义:数据类型 变量名 = 数据值; 其中需要注意数据值与数据类型的匹配。
5.标识符
在给类、方法、变量、常量命名时需要注意:
1.不能使用java中的关键字。
2.可由字母、数字、下划线"_"、$、组成,其中不能以数字开头。
3.标识符对大小写敏感。标识符的命名约定:
1.小驼峰式命名,首个单词首字母小写,其余单词首字母大写。
2.大坨峰式命名,所有单词首字母大写。
二.运算符
1.算术运算符
加‘+’,减‘-’,乘‘*’,除‘/’,取余(模)‘%’(获取两个数做除法后的余数称为取余)
2.自增自减运算符
列如i++,i--,++i,--i。若符号在变量右边,则表示先运行后进行自加操作,若符号在变量左边,则表示先进行自加,再进行运行。
3.关系运算符
关系运算符有:等于==、!=不等于、大于>、大于等于>=、小于<、小于等于<=(注意:关系运算符得出的结果为布尔类型的数据,若关系运算符两边符合判断,则输出true,反之亦然。)
4.逻辑运算符
1.逻辑与 &(符号两边为true则输出true,任意一边为false则输出false)。
2.逻辑或 |(符号任意一边为true则输出true,若两边都是false则输出false)。
3.逻辑异或 ^(符号两边相同为false,不同为true)。
4.逻辑非 !(列如a=true则!a=false)。
5.短路逻辑运算符
1.短路与 &&(若左边为真,右边执行,左边为假,则右边不执行)。
2.短路或 ||(若左边为假,右边执行,若右边为真,右边不执行)。
6.三元运算符
语法格式:关系表达式?表达式1:表达式2;(若关系表达式成立,则输出表达式1,反之则输出表达式2)列如int a = 1; int b = 2; a>b?a:b;最终输出的结果为2。
三.流程控制语句
1.if条件判断语句
if条件判断语句:首先计算关系表达式1的值,若为true则执行语句体1,若为false则计算关系表达式2,以此类推。同时,if-else语句是可以进行嵌套的。if条件判断语句适用于范围值的条件判断。
//if条件判断语句格式
package com.jichuyufa;
public class Practice17 {
public static void main(String[] args) {
int i = 3;
if (i < 5) {//关系表达式1
if (i <= 3) {//if语句的嵌套
System.out.println(i);
}
} else if (i > 5) {//关系表达式2
System.out.println(i);
} else {//默认为i=5的情况
System.out.println(i);
}
}
}
2.分支语句switch语句
分支语句switch语句:语句格式首先计算表达式的值,计算出的值与case依次比较,即可执行相应的语句体,若计算表达式所得的值与任何一个case值都不匹配,则执行default下的语句体,执行结束后通过break结束程序。switch语句适用于判断值为定值且数量较少的判断条件。
//switch分支语句格式
package com.jichuyufa;
import java.util.Scanner;//导入键盘录入数据所需的包
public class Practice17 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个1到3之间的整数");//通过键盘输入一个值与case值比较
int x = scanner.nextInt();
switch (x){//计算表达式
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
default://若输入的值与任何一个case值都不匹配,则执行default下的语句体
System.out.println("输入数字有误,请重新输入");//语句体
}
}
}
3.循环语句
1.for循环语句
//for循环语句格式
package com.jichuyufa;
public class Practice17 {
public static void main(String[] args) {
for(int i = 1;i <= 5;i++){//括号内(初始化语句;条件判断语句;条件控制语句)
System.out.println(i);//语句体
}
}
}
2.while与do while循环语句
while语句与for语句都是先判断条件再进行语句体的执行,而do while语句是先进行语句体的执行在进行条件的判断。
//while语句格式
package com.jichuyufa;
public class Practice17 {
public static void main(String[] args) {
int i = 1;//初始化语句
while (i <= 5){//条件判断语句
System.out.println(i);//语句体
i++;//条件控制语句
}
}
}
//do while语句格式
package com.jichuyufa;
public class Practice17 {
public static void main(String[] args) {
int i = 1;//初始化语句
do {
System.out.println(i);//语句体
i++;//条件控制语句
}
while (i <= 5);//条件判断语句
}
}
for,while与do while语句最终输出结果图
4.跳转控制语句
1.break语句,跳出循环,结束此次循环。
2.continue语句,跳过此次循环,继续后续的循环。