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;
	}
}
}