Java语言
一、基础语法
1、JDK环境以及Path环境变量
1.下载链接
www.oracle.com/downloads/index.html
点击之后 选择 java文件进行下载 选择 jdk
执行 exe程序一键安装,并添加到环境变量之中
2.计算机中(黑窗口)简单的操作
1.进入文件
cd 文件名
2.返回上一层
cd ..
3.清屏
cls
4.回到根目录
cd /
5.退出窗口
exit
注意:输入java观察是否已经有了全局变量 要新开cmd文件,并输入
java -version
3.黑窗口的执行方法
(1)找到跟目录下的 .java的目录
(2)输入javac 文件名
(3)输入 java 文件名
注意:第三步的时候是不加 后缀名的
2、hello案例
1.初始 hello owrd
可以通过 **notepad++**来进行编写
public class HelloJava{
public static void main(String[] args){
System.out.println("Hello word");
}
}
2.注释的方式
单行注释
//
多行注释
/*
*/
/*
定义的类名:HelloJava
*/
public class HelloJava{
// 定义的方法 main 即程序的入口
public static void main(String[] args){
System.out.println("Hello word");
}
}
注意:关键的字母都是小写的
3、常量,变量,数据类型
1.常量
定义:在程序运行过程中,不可以发生改变的值
- 布尔值常量:true,flase
- 小数常量:带小数的数字
- 字符常量:用单引号引起来的内容
- 字符串常量:用双括号引起来的内容
- 空常量:NULL值
- 整数常量:不带小数的数字
注意:空常量是不能直接输出的****
public class JavaTestOne{
public static void main(String[] args){
// 整型常量
System.out.println(123);
// 小数常量
System.out.println(1.88);
// 字符串常量
System.out.println("hello world");
// 字符常量
System.out.println("C");
// 布尔值常量
System.out.println(true);
}
}
2.数据类型
定义:数据元( Data Element),也称为数据元素,是用一组属性描述其定义、标识、表示和允许值的数据单元,在一定语境下,通常用于构建一个语义正确、独立且无歧义的特定概念语义的信息单元。数据元可以理解为数据的基本单元,将若干具有相关性的数据元按一定的次序组成一个整体结构即为数据模型
3.变量
定义:在程序运行过程中,其值是可以改变的值
变量名 + 数据类型 + 变量值
注意:(1)定义变量要给值
(2)变量名不能重复
(3)给予变量的值不能超过整型的定义
(4)Long型为为了防止整型过大 后面要加上 L
(5)float型了区分浮点型 后面要加上 F
public class JavaTestOne{
public static void main(String[] args){
// 变量的使用
int a = 12;
System.out.println(a);
// 对于浮点型的变量 后缀要加上 F
float b = 18.88F;
System.out.println(b);
}
}
4.标识符
定义:由字母,下划线,数字等组成
注意:(1)不能以数字开头
(2)不能是关键字
(3)要区分大小写
小驼峰命名法:firsTnamE
大驼峰命名法:FirstName
5.类型转换
5.1自动类型转换
含义:将一个表示数据范围小的数值或变量赋值给另一个表示数据范围大的变量
即:表示从小到大的排序,排序结果如下
byte ->short ->
int -> long -> float -> double
char ->
int a = 12;
// short 的范围比 int 小
short aa = a;
double aaa = a;
5.2强制类型转换
int k = (int)88.88
4、运算符
1.算术运算符
运算符:对变量进行四则运算
除法【/】得到的是商
取余【%】得到的是余数
在国际编码【Ascii】中
- ‘A’ 的字符为 65
- ‘a’ 的字符为 97
- ‘0’ 的字符为 48
注意:按照类型排序的大小,在运算之中 【类型大的值 + 类型小的值 == 类型大的值 】
对于字符串与整型的增加会等于 字符串后面的拼接
System.out.println(6+6+“char”)
// 等于 (12char)
System.out.println(“char”+6+6)
// 等于 (char66)
2.赋值运算符
2.1 赋值
int i =10;
System.out.println("i:"+i)
2.2 自增
// 加法
i += 20;
// 等于
i = i+20;
// 减法
3.自增自减运算符
i++ : 先赋值在自增
++i:先自增在赋值
4.关系运算符
常见的有:== != > >= < <=
得到的结果为:0【true】 和非0 【flase】
注意:千万不要把 == 写成 =
5.逻辑运算符
&:和
|:或
^:异
!:非
public class JavaTestOne{
public static void main(String[] args){
// 变量的使用
int a = 12;
int b = 10;
// & 和的运用
System.out.println((a<b) & (a >b));
// 结果为:False 只要两者都为非0 才能是非0的数字
// | 或的运用
System.out.println((a<b) | (a >b));
// 结果为:True 只要两者其中一者为非0. 结果为非0
// ^ 的运用
System.out.println((a<b) ^ (a >b));
// 结果为:True 只要两者都相同则为 flase 两者都不同则为 true
// ! 的运用
System.out.println(!(a<b));
// 结果为:True 结果的反面
}
}
5.2短路逻辑运算符
&&
||
两者与 & 和 | 的区别在于
System.out.println((a<b) & (a >b)); // 两者都要被比较到
System.out.println((a<b) && (a >b)); // 如果左边达到条件,右边不执行
|| 也如此
6.三元运算符
格式:关系表达式?表达式1:表达式2
对关系表达式进行判断,如果为非0 则为表达式1的内容 如果为0 则为表达式2的内容
int a = 10;
int b = 20;
int max = a>b ? a:b
7.数据的输入
7.1导包
import java.util.Scanner;
7.2创建对象
Scanner sc = new Scanner(System.in);
7.3接受数据
int i = sc.nextInt();
总结 三个和尚测身高案例:
// 导入包
import java.util.Scanner;
public class JavaTestOne{
public static void main(String[] args){
// 新建变量
Scanner sc = new Scanner(System.in);
// 接受数据
System.out.println("请输入第一个人的身高:");
int height1 = sc.nextInt();
System.out.println("请输入第二个人的身高:");
int height2 = sc.nextInt();
System.out.println("请输入第三个人的身高:");
int heigth3 = sc.nextInt();
// 进行比较
int compare_result1 = height1>=height2 ? height1: height2;
int compare_result2 = compare_result1>= heigth3 ? compare_result1:heigth3;
System.out.println("其中最高为:"+compare_result2);
}
}
5、顺序结构
定义
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行
6、选择结构(if语句,switch)
1.定义
选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程
2.语句的执行方式
数据的测试:正确的数据,边界数据,错误数据
1.if语句
执行流程:
- 首先计算关系表达式的值
- 如果为 true 则执行语句
- 为 flase 则不执行
- 继续执行剩下的语句
int a = 10;
int b = 20;
if( a < b){
System.out.println("a 小于 b");
}else{
System.out.println("a 大于 b");
}
案例:判断奇偶数
// 导入一个输入的包
import java.util.Scanner;
public class JavaTestTwo{
public static void main(String[] args){
// 输入一个值
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
// 判断
if (number % 2 == 0){
System.out.println("输入的值为偶数");
}
else{
System.out.println("输入的值为奇数");
}
}
}
2.if···else if ··· else
执行流程:
- 首先计算关系表达式的值
- 如果为 true 则执行语句
- 为 flase 则不执行
- 继续执行剩下的语句 [还有else if 的话继续判断 if 里面的内容]
案例:考试奖励
// 导入一个输入的包
import java.util.Scanner;
public class JavaTestTwo{
public static void main(String[] args){
// 输入一个值
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的成绩:");
int grade = sc.nextInt();
// 判断
if (grade > 100 || grade < 0){
System.out.println("输入的分数格式有误!");
}else if(grade >= 90 && grade <= 100){
System.out.println("奖励 无人飞机一只");
}else if(grade >= 80 && grade < 90){
System.out.println("奖励 零食一份");
}else if(grade >=60 && grade < 80){
System.out.println("奖励 练习本一叠");
}else{
System.out.println("奖励 揍打一顿");
}
}
}
3.switch
1.定义
Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制流程流转的
2.语句
- 表达式:取值为bute,short等
- case:后面跟的是要和表达式进行比较的值
- break:表示中断
- default:与if语句中的else的用法相似
注意:如果没有break,case会进行穿透,不断向下执行
案例:春夏秋冬
// 导入一个输入的包
import java.util.Scanner;
public class JavaTestTwo{
public static void main(String[] args){
// 输入一个值
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查询的月份:");
int month = sc.nextInt();
switch(month)
{
// 12,1,2月份为冬季
case 12:
case 1:
case 2:
System.out.println("该月份属于冬季");
break;
case 3:
case 4:
case 5:
System.out.println("该月份属于春季");
break;
case 6:
case 7:
case 8:
System.out.println("该月份属于夏季");
break;
case 9:
case 10:
case 11:
System.out.println("该月份属于秋季");
break;
default:
System.out.println("输入的格式有误!");
}
}
}
7、循环结构(for while do-while)
1.定义
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。
2.组成
1.for
执行流程
- 执行初始化语句
- 执行条件判断 结果为 true继续执行,flase结束循环
- 执行循环体语句
- 执行条件控制语句
- 回到2继续执行剩下的语句
for (int i = 0;i<=5;i++){
System.out.println("扣1");
}
案例:求偶数和
public class JavaTestTwo{
public static void main(String[] args){
int sum = 0;
for (int i =1;i<=100;i++){
if(i % 2 == 0){
System.out.println("该值为偶数");
sum +=i;
}
}
System.out.println("计算的结果为:"+sum);
}
}
案例:水仙花
分析
- 对三位数的个位数依次进行三次方的计算
- 计算的结果是否等于本身
// 导入一个输入的包
import java.util.Scanner;
public class JavaTestTwo{
public static void main(String[] args){
int count = 0;
for(int i = 100;i<=999;i++)
{
// 三位数取个位数的方法
int ge = i%10;
// 三位数取十位数的方法
int shi = i/10%10;
// 三位数取百位数的方法
int bai = i/10/10%10;
if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
System.out.println("i的值为:"+i);
System.out.println("符合水仙花的要求");
count +=1;
}
}
System.out.println("水仙花的个数为:"+count);
}
}
2.while
执行流程
- 执行初始化语句
- 执行条件判断 结果为 true继续执行,flase结束循环
- 执行循环体语句
- 执行条件控制语句
- 回到2继续执行剩下的语句
int i = 0;
while (i <5){
System.out.println("扣1");
i++;
}
3.do···while
执行流程
- 执行初始化语句
- 执行条件判断 结果为 true继续执行,flase结束循环
- 执行循环体语句
- 执行条件控制语句
- 回到2继续执行剩下的语句
do
{
System.out.println("扣1");
i++;
} while (i<=5);
4.三种循环的区别
do···while 跟其他两者的区别在于先执行了循环体
while 跟 for 的区别在于 while 的int i =1可以被继续使用
int i = 0;
while (i <5){
System.out.println("扣1");
i++;
}
// 可以继续被使用
System.out.println(i);
for (int i = 0;i<=5;i++){
System.out.println("扣1");
}
//System.out.println(i); 不能被使用
5.跳转控制语句
5.1continue
跳过本次循环,执行下一次循环
int i = 0;
for(i =0;i<=5;i++){
if(i%2==0){
// 跳过本次循环
continue;
}
System.out.println("为奇数");
}
5.2break
结束循环
int i = 0;
for(i =0;i<=5;i++){
if(i%2==0){
// 跳过本次循环
break;
}
}
6.嵌套
案例:嵌套for循环
for (int i =1;i<=5;i++){
for (int j = 1;j<=i;j++){
System.out.println("第"+i+"行"+"第"+j+"列");
}
}
7.random
定义:产生随机数
1.导包
import java.util.Random;
2.创建对象
Random r = new Random();
3.获取随机数
// 生成 0——9的随机数
int number = r.nextInt(10);
// 当我要生成0——10的随机数
int number = r.nextInt(10)+1;
案例:猜数字小游戏
// 导入一个随机的包
import java.util.Random;
import java.util.Scanner;
// 函数
public class JavaTestTwo{
public static void main(String[] args){
// 创建对象
Random r = new Random(); // 随机数
Scanner sc = new Scanner(System.in); // 输入值
// 实例化参数,随机生成值
System.out.println("猜数字游戏 0-10之间");
for(int i=3;i >=1;i--){
System.out.println("剩余次数:"+i);
int random_number = r.nextInt(10)+1;
// 输入值
int scanner_number = sc.nextInt();
if (scanner_number<0 || scanner_number > 10){
System.out.println("输入的值不在 0——10之间!");
System.out.println("================");
}
else if (scanner_number == random_number){
System.out.println("恭喜你猜对了");
System.out.println("随机生成的值为:"+random_number);
System.out.println("================");
}
else{
System.out.println("抱歉你猜错了");
System.out.println("随机生成的值为:"+random_number);
System.out.println("================");
}
}
System.out.println("游戏结束!");
}
}
————————
后续将继续更新!
内有不足之地请指教!