Eclipse功能快捷键
alt + / 提示
alt + ctrl + ↑/↓ 向上或向下复制某一行
alt + ↑/↓ 向上或向下移动某一行
ctrl + shift + f 自动整理代码格式
ctrl + shift + o 自动导包
ctrl + d 删除
ctrl + / 单行注释
ctrl + shift + / 选中多行,添加多行注释
ctrl + shift + \ 取消多行注释
ctrl + 2 松手 按L new 一个对象时,自动生成返回值
alt + shift + a 快速修正片段
三目运算符
格式 : 数据类型 接收值 = 关系表达式 ? 表达式1 : 表达式2 ;
例如 : int max = a > b ? a : b ;
运行机制 :通过关系表达式判断结果是true/false ,如果结果为true,则执行表达式1,如果结果为false,则执行表达式2.
注意 : 表达式1和表达式2,只能运行一个 , 且接收值和关系表达式的结果的数据类型要保持一致. 也可以直接打印等号右边的运算符,不用使用接收值.
//判断三个数中的最大值
public class Demo2 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
int max1=a>b?a:b;//方法一
int max=max1>c?max1:c;
System.out.println(max);
int max2 = a>b&&a>c?a:b>c?b:c;//方法二
System.out.println(max2);
int max3 = a>(b>c?b:c)?a:(b>c?b:c);//方法三
System.out.println(max3);
int max4 = (a>b)?(a>c?a:c):(b>c?b:c);//方法四
System.out.println(max4);
}
}
键盘录入
1 . 导包 , 使用 import 导入 Scanner 的包
2 . 创建一个Scanner 的对象 : Scanner sc = new Scanner(System.in); (固定写法)
3 . 通过next()方法接受键盘值 :
常用的两种录入方法 :
int a= sc.nextInt(); 用于录入整数
String a = sc,next () ; 用于录入字符串
键盘录入还可以用来做正则表达式 : 做过滤器使用 , 判断输入的数据类型是否符合 , 符合就通过 , 不符合就报错
//通过键盘录入三个数,判断三个数中的最大值
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数");
int a = sc.nextInt();
System.out.println("请输入第二个整数");
int b = sc.nextInt();
System.out.println("请输入第三个整数");
int c =sc.nextInt();
int max = a>b&&a>c?a:b>c?b:c;
System.out.println(max);
}
}
流程控制结构
顺序结构
代码右上向下 , 由左向右执行
选择结构
if…else
格式 1 :
if (关系表达式 ) {
语句体;
}
执行流程 : 先判断关系表达式是true/false , true 就执行语句体 , false 就不执行语句体,跳到大括号后面继续执行.
注意 : if 后面的大括号 {}是可以省略不写的,如果不写就只能判断if下面的第一个语句是否执行,但是不建议省略.
import java.util.Scanner;
//通过键盘录入,判断两个数是否相同及判断两个数中的最大值
public class Demo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一整数");
int a= sc.nextInt();
System.out.println("请输入第二整数");
int b= sc.nextInt();
/*int max =a;
if(a<b) {
max = b;
}//判断两个数中的最大值
System.out.println(max);*/
String s = "不相同";
if(a==b)
s = "相同";
System.out.println(s);
}
}
格式 2 :
if (关系表达式 ) {
语句体1;
}else{
语句体2;
}
执行流程 : 先判断关系表达式,true就执行语句体1, false 就执行语句体2,两个语句体必有一条执行.
注意 : else 后面没有括号,说明lelse执行时不需要判断 . if ( 关系表达式) ; { 语句体 } 如果if后面跟 ; 号 , 无论判断结果为什么,都会执行大括号中的语句体 , 因为 ; 号表示if 语句已经执行完毕.
import java.util.Scanner;
//通过键盘录入一个数字,判断这个数字是奇数还是偶数
public class Demo5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字");
int a = sc.nextInt();
if(a%2==0) {
System.out.println(a+"为偶数");
}else {
System.out.println(a+"为奇数");
}
}
}
格式 3 :
if (关系表达式 1) {
语句体1;
}else if (关系表达式2 ){
语句体2;
…
}else if (关系表达式n ){
语句体n;
}else{
语句体n+1;
}
执行流程 : 从上到下依次判断关系表达式是否为true,如果是true就执行其中的语句体,如果一直都是false就执行else中的语句体, 一定会有一句语句体被执行.且只要执行了一次,整个流程都会结束.
注意 : 如下程序需要加return,结束if else 及main方法 , 否则执行"无法计算"时,也会去执行输出y的值
import java.util.Scanner;
//键盘录入一个数,根据数值大小范围,按公式运算结果
public class Demo7 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入X值");
double x = sc.nextDouble();
double y=0;
if (x >= 3) {
y = 2 * x + 1;
} else if (x >= -1 && x < 1) {
y = 2 * x;
} else if (x < -1) {
y = 2 * x - 1;
} else {
System.out.println("无法计算");
return;
}
System.out.println(y);
}
}
if else 和三木运算符之间可以相互转换,三目运算符一定可以转if else ,但if else不一定能转成三目运算符
switch
格式 : key 和 value 只能是一个常量值或计算得出的常量值, 且只能是如下几种常量:
byte short char int String enum
switch (key) {
case value:
//执行语句
break;
case value:
//执行语句
break;
default:
//执行语句
break;
}
执行流程: 拿着key中的值去case后面的值进行比较,如果相同,就执行其中的执行语句,如果不相同就往下继续对比执行,都对比不成功,就执行dafault中的语句.
注意事项: dafault和他的执行语句也可以写在上面,也可以不写.
break也可以不写,但他不写的话,会是switch语句形成穿透效果,当case后面的值对比成功就会一直往下执行,直到遇到break或switch执行完毕才停止执行.
import java.util.Scanner;
//键盘录入一个月份,使用switch的穿透效果确定他的季节
public class Demo9 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份");
int a = sc.nextInt();
switch (a) {
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;
case 12:
case 1:
case 2:
System.out.println("冬天");
break;
default:
System.out.println("月份输入错误");
break;
}
}
}
import java.util.Scanner;
//键盘录入一个分数,进行评级
public class Demo11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的分数");
int a = sc.nextInt();
int b = a / 10;
if(a>100||a<0) {
System.out.println("该成绩不合法");
return;
}
switch (b) {
case 10:
case 9:
System.out.println("您的成绩为A级");
break;
case 8:
System.out.println("您的成绩为B级");
break;
case 7:
System.out.println("您的成绩为C级");
break;
case 6:
System.out.println("您的成绩为D级");
break;
default:
System.out.println("您的成绩为E级");
break;
}
}
}
import java.util.Scanner;
//键盘录入一个字符,进行运算
public class Demo10 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数字");
double a = scanner.nextDouble();
System.out.println("请输入第二个数字");
double b = scanner.nextDouble();
System.out.println("请输入一个运算符");
String c = scanner.next();
switch (c) {
case "+":
System.out.println(a+b);
break;
case "-":
System.out.println(a-b);
break;
case "*":
System.out.println(a*b);
break;
case "/":
System.out.println(a/b);
break;
case "%":
System.out.println(a%b);
break;
default:
System.out.println("暂不支持该运算");
break;
}
}
}