JavaSE的基础语法
1. 两个常用的工具类
1.1 随机生成
Math 类提供了一个名叫 random 的方法, 可以随机生成 [0,1) 之间的任意 double类型的数据。
double i=Math.random(); //生成0-1的随机数并赋值给i变量
int j=(int)(Math.random()*7+1) //生成1-7的随机数并赋值给j变量
1.2 键盘录入
键盘录入可以允许用户在程序运行过程中向程序输入数据,达到人机交互的效果, 提高用户体验度。
但是需要进行一些额外的操作,后面会具体解释
- 导包 ( import java.util.Scanner; ) 告诉程序这个工具在何处 。
- 创建对象(Scanner sc = new Scanner(System.in);)创建工具 。
- 获取数据 ( int num = sc.nextInt();) 使用工具获取数据。
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的分数:");
int grade = sc.nextInt();
if(grade<60){
System.out.println("很抱歉,你未及格");
}else{
System.out.println("恭喜你,及格了");
}
}
}
2. 控制语句
控制语句就是掌握程序的流向,使程序按业务逻辑目的运行的代码。即用来实现对 程序流程的选择、循环、转向和返回等进行控制。
从结构化程序设计角度出发,程序有三种结构: 顺序结构, 选择结构 , 循环结构
2.1 顺序结构
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行顺序 结构是简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行 的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。顺序结构在程序流程图中的体现就是用流程线将程序框自上而地连接起来,按顺序执行算法步骤。
2.2 选择结构
所谓选择结构,顾名思义就是需要作出选择,然后继续执行,生活中有很多例子。比如说去上班,是选择开车去还是骑车去,如果有汽车,那就开车去,如果没骑车,就骑车去。。。嗯,我没车 。
2.2.1 if单分支
public class Test{
public static void main(String args[]){
int age=12;
if(age>0 && age<14){
System.out.println("青年组");
}
if(age>=14 && age<64){
System.out.println("中青年组");
}
if(age>=64){
System.out.println("老年组");
}
}
}
2.2.2 if-else双分支
双分支的意思是有两个分支可以选,终也只会走一条分支。 如果条件为true执行 一个操作,为false执行另一个操作。
public class Test{
public static void main(String args[]){
int age=19;
if(age>18){ //判断条件
System.out.println("你已成年。"); //条件为true
}else{
System.out.pringln("你未成年。"); //条件为false
}
}
}
2.2.3 if-else if多分支
多条分支可选,但是最终只会选择一条。
public class Test{
public static void main(String args[]){
int age = (int) (100 * Math.random());
System.out.print("年龄是" + age + ", 属于");
if (age < 15) {
System.out.println("儿童, 喜欢玩!");
} else if (age < 25) {
System.out.println("青年, 要学习!");
} else if (age < 45) {
System.out.println("中年, 要工作!");
} else if (age < 65) {
System.out.println("中老年, 要补钙!");
} else if (age < 85) {
System.out.println("老年, 多运动!");
} else {
System.out.println("老寿星, 古来稀!");
}
}
}
2.2.4 switch-case选择
switch选择也称定值选择,做的是等值比较。if选择可以做定值选择也可以做区间选择。
根据表达式值的不同执行许多不同的操作,switch 语句:case 标签必须是整数(byte , short , int , char )或 枚举 或 字符串 (jdk1.7 开始支持字符串)。
switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语 句处或者是switch语句的末尾。与任一case值不匹配,则进入default语句(如果有的话)
import java.util.Scanner;
public class Grades {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你的分数:");
int grade=sc.nextInt();
int num=grade/10;
switch (num){
case 10:
System.out.println("优秀");
break;
case 9:
System.out.println("优秀");
break;
case 8:
System.out.println("良好");
break;
case 7:
System.out.println("中等");
break;
case 6:
System.out.println("及格");
break;
default:
System.out.println("不及格");
}
}
}
3. 循环结构
循环即重复地执行一些 相同 或 类似 的操作 。
目的:实现代码的复用。
3.1 while循环
- 在循环刚开始时,会计算一次“布尔表达式”的值, 若条件为真 ,执行循环体。 而对于后来 每一次 额外的循环,都会在开始前重新计算一次。
- 语句中应有使循环趋向于结束的语句,否则会出现无限循环––– "死"循环 。
public class Test {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i <= 100) { // 求解1-100的和
sum += i; //sum = sum+i;
i++;
}
System.out.println("Sum= " + sum);
}
}
3.2 do-while循环
与while的区别是:do-while是先执行循环体中的内容,然后再判断循环体条件;while是先判断,符合条件则执行循环体中的内容;换一句话来讲:就是第一次执行的时候有差别。
do-while总是保证循环体会被至少执行一次!这是while和do-while的主要差别
public class Test {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do{ // 求解1-100的和
sum += i; //sum = sum+i;
i++;
}while (i <= 100)
System.out.println("Sum= " + sum);
}
}
3.3 for循环
for循环语句是支持迭代的一种通用结构,是有效、灵活的循环结构。
for循环在第一次反复之前要进行初始化。随后,它会进行条件测试,而且在每一次 反复的时候,进行某种形式的“步进”。
- 初始化部分设置循环变量的初值 。
- 条件判断部分为任意布尔表达式 。
- 迭代因子控制循环变量的增减。
public static void Ques04(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你需要打印的几乘几乘法表:");
int n=sc.nextInt();
for (int i=1;i<=n;i++){
for (int j=1;j<=i;j++){
System.out.print(j+"*"+i+" = "+i*j+" ");
}
System.out.println();
}
}
System.out.println("请输入你需要打印的几乘几乘法表:");
int n=sc.nextInt();
for (int i=1;i<=n;i++){
for (int j=1;j<=i;j++){
System.out.print(j+"*"+i+" = "+i*j+" ");
}
System.out.println();
}
}