发表时间:2022-03-25来源:网络
安装JDK,官网下载速度练太极功法的高手是接受不的,依我之见,要先修炼九阳神功,方可快速入门;
经过傻瓜式安装之后,找到jdk的安装目录,复制路径。
点击桌面上的【电脑】,随后按顺序点击【属性-高级系统设置-环境变量】;
在系统变量处点击【新建】:
变量名:JAVA_HOME
变量值:“路径”;
找到系统变量目录里的Path,【编辑-新建】,将路径复制进去,并且在后面填写 “\bin”。
下载idea可以解决一下琐碎、重复的问题,现在比较流行且免费的有IntelliJ IDEA。
在官网里有一个功能强大的专业版和不收钱的社区版,但社区版的功能也足够使用。
成功安装并启动之后,这一寸见方的容膝之地将会成为我们发难的第一据点。
欲练此功,必先依照国际惯例,编写HelloWorld程序,以示诚意与决心,就此宣告占领新语言的开始。
诸位莫要迟疑,请随我来,【New Project】;
[^1]: 上方荧光标记的SDC与JDK是意义实则无二,倘若此处空白,请点击【New】自行寻找jdk所在路径;
随后【Next】,此时不妨将程序名命名为HelloWorld,【Finish】;
英雄请看在下这闪电无连边鞭,【Project-HelloWorld-src-New-Java Class】,咔嚓!
[^2]: src代表source,文件标志的颜色与其他文件不同。
新建Class名为“HelloWorld”,你方能瞧见src中出现了一个新类。
直接输入psvm并回车,建立main方法,输入sout并回车,在括号内输入“Hello World!”。
在页面内单击右键,【Run】贺喜贺喜,编译成功。
现在简要总结一下这个小不点程序中运用的语法知识:
类( class )语法元素
●类-class;
●HelloWorld是类名;
●public class-告诉 Java类名要与代码文件名一致;
●大括号内是类的内容。
main方法( main method )语法元素
●public static void main (String[ args)一main方法的定义,告诉Java这是程序入口,也就是程序开始执行的地方;
●大括号内是方法的内容,又称方法体( method body );
●main方法最为特殊的一-点是,它是Java程序的入口。
System.out.println
●System.out.println 是Java提供的内置功能,可以将内容输出;
●小括号里的内容是参数( parameter);
●没有参数的情况下,System.out.printIn()会输出一行空行。
关键知识
●class后面的名字是类名,类名必须与源文件的文件名相同,文件名后缀必须是小写的java;
●main方法是Java程序执行的入口。
其他
●对于一些未解释的词语,并不影响学习,莫要催促择日再议。
想必你未曾料到此处已略去,还望海涵。
●if-else语法,只有一个语句块被执行;
●if和else都是Java中的关键字;
●把if-else 看做-个表达式,程序整体还是顺序执行的。
使用if-else来多买两个肉包(if else )
public class IfElseseBaozi { public static void main(String[] args){ int baozi = 3; boolean baoziGangchulong = true; if (baoziGangchulong){ baozi = baozi + 2; System.out.println("包子刚出笼,买了"+ baozi + "肉包子 "); }else{ System.out.println("买了" + baozi + "个肉包子"); } } }●如果if 或者else的语句块只有一个语句 ,可以省略{};
●嵌套可以变为else if 。
比较三个数字的大小(if else 简化)
public class IfesleNext { public static void main(String[] args){ int a = 10,b = 7,c = 99; System.out.println("a=" + a + ",b=" + b + ",c=" + c ); if (a == b && b == c) System.out.println("a,b,c大小相等。"); else if (a > b && a > c) System.out.println("a的值最大。"); else if (b > c && b > a) System.out.println("b的值最大。"); else if (c > a && c > b) System.out.println("c的值最大。"); else if (a > c && b==a) System.out.println("ab等大最大。"); else if (b > a && b==c) System.out.println("bc等大最大。"); else if (a > b && a==c) System.out.println("ac等大最大。"); } }找整除数
public class CalcDivBreakAndContinue { public static void main(String[] args) { int dividend = 10; int divisor = 21; int foundCount = 0; int toBeFound = 5; for (int i = 0; i System.out.println("跳过" + dividend + ", 因为它比除数" + divisor + "小。"); continue; } if (dividend % divisor == 0) { System.out.println(dividend + "可以整除" + divisor + "。商为" + dividend / divisor); foundCount++; } if (foundCount >= toBeFound) { break; } } System.out.println("总共找到" + foundCount + "个可以整除" + divisor + "的数。"); } }计算乘法表
●两个数相乘,外层循环代表乘数,内层是被乘数。●循环嵌套, 变量名不可以重;
●使用break语句让输出的乘法表更简洁;
●使用String变量,做String的加法。
public class Example { public static void main(String[] args) { for (int i = 1;i if (i int n = 5; int dividend = 100; int divisor = 2000000000; String start = "从" + dividend + "开始递增,"; int found = 0; while (found System.out.println("被除数溢出,未找到足够的数。循环结束。"); break; } if (dividend % divisor == 0) { System.out.println(dividend + "可以整除" + divisor + "。商是" + dividend / divisor); found++; } dividend++; } System.out.println(start + "共找到" + found + "个可以整除" + divisor + "的数。"); System.out.println(dividend); } }●switch 语句中用于比较的值,必须是int 类型;
●switch 语句适用于有固定多个目标值匹配,然后执行不同的逻辑的情况;
●必须使用break语句显示的结束一个case子句,否则switch语句会从第一个match的case语句开始执行直到遇到break 语句或者switch语句结束;
●default 子句是可选的,如果所有的case语句都没有匹配上,才会执行default中的代码。
public class IfElseSwitch { public static void main(String[] args) { int n = 2; String ret = n + "对应的汉字是"; switch (n) { case 1: ret = ret + "壹"; break; case 2: ret = ret + "贰"; break; case 3: ret = ret + "叁"; break; case 4: ret = ret + "肆"; break; case 5: ret = ret + "伍"; break; case 6: ret = ret + "陆"; break; case 7: ret = ret + "柒"; break; case 8: ret = ret + "捌"; break; case 9: ret = ret + "玖"; break; default: System.out.println("错误的值" + n + "。值需要大于等于1,小于等于9。"); } System.out.println(ret); } }●Math.random()生成随机数,随机数在0到1之间,类型是double;
●Scanner in = new Scanner(System.in)连接标准输入,在我们例子里也就是命令行。in也是变量,只是不是基本类型;
●in.nextLine()可以从命令行读取一行字符串,in.nextl
ine()可以从命令行读取一个正整数;
●点操作符也是Java中的操作符,和System.out.println()以及Math.random()中的点是一样的操作符。是对点前面的“变量”进行点后面的"操作”。这里所谓的操作,就是指方法,也就是我们一-直写的main 方法的那个方法。这些操作都是使用一个个的的方法。使用方法我们叫做调用方法( invoke a method )。import java.util.Scanner;是告诉程序, Scaner 这个类型在哪里;
●创建Scanner类型的 "变量”, 它就是我们提过的工具,可以帮我们从标准收入读取数据nextLine()和nextInt()两个方法可以从命令行读取一行字符串或者一行字符串代表的整数。
猜数字的游戏
善假于物也Random方法和readInt方法是两个工具,可以完成一个明确具体的功能。
游戏功能●猜数字:生成一个指定范围内的随机正整数,从命令行读取一个整数,如果和随机数相同,就算猜中;
●固定随机数的范围;
●支持每次猜数字游戏的猜测次数 ,在指定次数内没猜对,则猜数字失败,否则就是成功。可以支持退出游戏;
●输出剩余的猜测次数;
●每次猜测后,如果未猜中,则提示本次猜测的数字比目标数字大还是小;
●游戏结束后,输出猜数字游戏的统计;
●没有猜中,要输出这次的目标数字;
●可以设置随机数的范围,可以设置最大猜测次数。
import java.sql.S; import java.util.Scanner; public class GuessNumber{ public static void main(String[] args) { //创建Scanner来获取用户键盘输入 Scanner in = new Scanner(System.in); //游戏设置 int rangeStart = 1; int rangeEnd = 9; int guessTotal = 5; //游戏统计 int totalGameCount =0; int correctGuessCount =0; int leftToGuess = guessTotal; //是否结束游戏 boolean stopGame = false ; while (!stopGame){ //初始化游戏变量 int guessLeft = guessTotal ; int mod = rangeEnd - rangeStart; if (rangeStart System.out.println("还有"+guessLeft + "次机会,请输入猜测的数字,回车确认。"); int guessNum =in.nextInt(); //输入-1,结束游戏。 if (guessNum == -1){ stopGame = true ; break; } else if (guessNum = rangeEnd ) { System.out.println("超出于其范围啦!"); continue; } if (gameStart){ totalGameCount++; gameStart=false; } //可以用的猜测次数减去1 guessLeft--; if (guessNum==num){ correctGuessCount++; System.out.println("恭喜你,猜对了!"); correctGuessCount++; break; }else if (guessNum > num){ System.out.println("猜测的数字比目标数字大。"); }else{ System.out.println("猜测的数字比目标数字小。"); } } if (!guessCorrect){ System.out.println("本次的目标数字是"+num+"。本次没有猜中。"); } } System.out.println("共进行了"+totalGameCount+"次游戏,共正确了"+correctGuessCount+"次。"); } } }1.重新认识基本类型的变量
●有定才有变。于人类,固定的是名字,变化的是名字对应的值;于计算机而言,固定的是地址,变化的是值。
●内存就是一卷竹简,只能通过页码编号访问,也就是所谓的内存地址。
●变量就是使用一个固定的地址加上这个地址对应的内存。计算机通过地址,读写地址对应的内存的值。完成变量的赋值和访问值的功能。就好像可以根据页码编号,在指定的竹片上写字,或者刮掉再复写。
●变量的名,即地址,变量的实就是地址的内存的值。
2.理解数组的名与实
●数组的实,即一块地址连续的内存,就像是有编号且连续的一段竹简;
●数组的名,即这个这个连续内存的第一个内存的地址;
●数组的变量和基本变量一样,本身是个地址。但是与基本变量不一样的是,这个地址的值,是数组的"名”, 也就是数组的第一个地址,
数组=数组变量+数组的实体;
●数组变量[索引] 就是在数组原有地址的基础上,加上索引,获得想要的元素;
●所以索引是从0开始的,因为数组变量的地址就是数组第一 个元素的地址。
3.数组的特点是
●所谓数组,即同类型变量的集合 ,这个集合的所有元素的类型都相同;
●身为人类,可以指定数组包含的元素个数,不过最多为int的最大值个;
●数组中的元素有固定的顺序;
●每个元素都有一 个固定的编号,称之为索引( index) , 从0开始递增,类型为int;
●可以像操作普通变量一样读写数组中的任何一个元素;
●如果说之前的变量是一张有名字的纸,可以通过这个名字读写这个变量;数组则是一个有名字的本子。本子有一个名字,每页纸有一个页码,可以通过本子的名字和页码读写对应的数组元素。
查找成绩最高分
import java.sql.S; import java.util.Scanner; public class ScoreArrayMaxScore{ public static void main(String[] args) { //确定科目索引 int Yuwen =0; int Math1 = 1; int Waiyu = 2; int Physics =3; int Chemisty =4; int Biology =5; String[] Names = new String[6]; Names[Yuwen] = "语文"; Names[Math1] = "数学"; Names[Waiyu] = "外语"; Names[Physics] = "物理"; Names[Chemisty] = "化学"; Names[Biology] = "生物"; double[] Scores = new double [6]; for (int i=0; i if(Scores[i]>MaxScore){ MaxScore=Scores[i]; MaxIndex=i; } } System.out.println("最高分科目为"+Names[MaxIndex]+",分数是"+MaxScore); for (int i= 0; i public static void main(String[] args) { //确定科目索引 int Yuwen =0; int Math1 = 1; int Waiyu = 2; int Physics =3; int Chemisty =4; int Biology =5; String[] Names = new String[6]; Names[Yuwen] = "语文"; Names[Math1] = "数学"; Names[Waiyu] = "外语"; Names[Physics] = "物理"; Names[Chemisty] = "化学"; Names[Biology] = "生物"; Scanner in = new Scanner(System.in); System.out.println("请输入共有多少年的成绩\n"); int yearCount = in.nextInt(); double[][] Scores = new double[yearCount][Names.length]; for (int i=0; i Scores[i][j] = (int)(80+Math.random()*20); } } System.out.println("请输入要查看第几年的成绩?\n"); int yearToUse = in.nextInt()-1; System.out.println("1.语文----2.数学----3.外语\n4.物理----5.化学----6.生物\n\n请输入要查看第几科的成绩\n"); int SubjectToLook = in.nextInt()-1; System.out.println("第"+(yearToUse+1)+"的第"+ (SubjectToLook+1)+"门的成绩是:"+Scores[yearToUse][SubjectToLook]); } }用数组灵活处理成绩
import com.sun.jdi.event.MonitorWaitedEvent; import java.util.Scanner; public class ScoreMaster { public static void main(String[] args) { //确定科目索引 int Yuwen =0; int Math1 = 1; int Waiyu = 2; int Physics =3; int Chemisty =4; int Biology =5; int totalScoreCount = 6; //每门课的名字 String[] Names = new String[6]; Names[Yuwen] = "语文"; Names[Math1] = "数学"; Names[Waiyu] = "外语"; Names[Physics] = "物理"; Names[Chemisty] = "化学"; Names[Biology] = "生物"; Scanner in = new Scanner(System.in); System.out.println("请输入共有多少年的成绩:"); int yearCount = in.nextInt(); double[][] Scores= new double[yearCount][totalScoreCount]; for (int i = 0; i System.out.println("请输入第" + (i + 1) + "年学科" + Names[j] + "的成绩,"); Scores[i][j] = in.nextInt(); } System.out.println("正在处理,请稍等。"); try { Thread.sleep(3000); } catch(InterruptedException ex) { Thread.currentThread().interrupt(); } for (int j =0;j Thread.sleep(1300); } catch(InterruptedException ex) { Thread.currentThread().interrupt(); } System.out.println("按回车键继续。"); new Scanner(System.in).nextLine(); boolean cont = true ; while (cont){ System.out.println("1.求某年的最好成绩:\n2.求某年的平均成绩:\n3.求所有年份的最好成绩:\n4.求门课历年最好成绩:\n请选择您要叫进行的操作:"); int oprtId = in.nextInt(); int year =0; switch (oprtId){ case 1: System.out.println("请输入要计算的年份:"); year= in.nextInt(); if (year yearCount){ System.out.println("非法的年份:"+year+"即将退出。"); try { Thread.sleep(1300); } catch(InterruptedException ex) { Thread.currentThread().interrupt(); } break; } year=year-1; //指定年份的最好成绩编号,开始假设是0 //T0D0:如果有的成绩同为最高分 int Best0fYearScore = 0; for (int i =0;i Best0fYearScore=i; } } System.out.println("第"+(year+1)+"年的最好成绩科目是"+ Names[Best0fYearScore]+"成绩为:"+Scores[year][Best0fYearScore]+"分。"); System.out.println("确认请按回车键。"); new Scanner(System.in).nextLine(); break; case 2: System.out.println("请输入要计算的年份:"); year= in.nextInt(); if (year yearCount){ System.out.println("非法的年份:"+year+",即将退出。"); System.out.println("正在处理,请稍等。"); try { Thread.sleep(1300); } catch(InterruptedException ex) { Thread.currentThread().interrupt(); } break; } year=year-1; //暂定该年总分为0 int Total0fYearScore = 0; for (int i = 0;i for (int j =0;j BestYear=i; BestScore=j; } } } System.out.println("所有年度最好的成绩为第"+(BestYear+1)+"年的"+Names[BestScore]+"成绩为:"+Scores[BestYear][BestScore]+"分。"); System.out.println("确认请按回车键。"); new Scanner(System.in).nextLine(); break; case 4: System.out.println("1.语文----2.数学----3.外语\n4.物理----5.化学----6.生物\n\n请输入科目编号"); int Subject = in.nextInt(); if (Subject Thread.sleep(1300); } catch(InterruptedException ex) { Thread.currentThread().interrupt(); } break; } Subject = Subject - 1; year=0; for (int i = 0;i year=i; } } System.out.println(Names[Subject]+"成绩最好为"+(year+1)+"年,成绩为"+Scores[year][Subject]+"分。"); System.out.println("确认请按回车键。"); new Scanner(System.in).nextLine(); break; default: cont = false ; try{ Thread thread = Thread.currentThread(); thread.sleep(5000);//暂停1.5秒后程序继续执行 }catch (InterruptedException e) { e.printStackTrace(); } System.out.println("不支持"+oprtId+"程序5秒后结束。"); } } } }
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务