JAVASE,
分享于 点击 10161 次 点评:259
JAVASE,
JAVASEDAY04
1.switch语句
switch 语句遵从下述规则:
① switch 表达式必须能计算出一个 char、byte、short,int或者 String 型值,并且必 须总是要用括号括住。 (char 和 String 类型将在下一章介绍。)
② valuel,. . . ,valueN 必须与 switch 表 达 式 的 值 具 有 相 同 的 数 据 类 型。注意: valuel, valueN 都是常量表达式,也就是说这里的表达式是不能包含变量的,例如,不 允许出现 1+X。
③ 当 switch 表达式的值与 case 语句的值相匹配时,执行从该 case开始的语句,直到 遇到一个 break 语句或到达该switch 语句的结束。
④ 默认情况(default)是可选的,当没有一个给出的 case 与 switch 表达式匹配时, 用来执行该操作。
⑤ 关键字 break 是可选的。break 语句会立即终止 switch 语句。 警告:不要忘记在需要的时候使用 break 语句。一旦匹配其中一个 case, 就从匹配的case 处开始执行,直到遇到 break 语句或到达 switch 语句的结束。这种现象称为落空行 为(fall-through behavior)。
代码示例:
public class SwitchDemo {
public static void main(String[] args) {
byte b=3;
switch(b){}
short s=3;
switch(s){}
int i=3;
switch(i){}
// long l=3;
// switch(l){}
// boolean bool=true;
// switch(bool){}
// double d=3.14;
// switch(d){}
char c=10;
switch(c){}
// String s="123";
// switch(s){}
//Cannot switch on a value of type long. Only convertible int values, strings or enum variables are permitted
//switch byte short int char String 枚举
}
}
2.课后题:
public class Demo3_11 {
public class MyCard {
public static void main(String[] args) {
//1.产生随机数
int number=(int)(Math.random()*13);
int color=(int)(Math.random()*4);
String num=null;
String col=null;
//牌的大小
switch(number){
case 0:
num="Ace";
break;
case 1:
num="2";
break;
case 2:
num="3";
break;
case 3:
num="4";
break;
case 4:
num="5";
break;
case 5:
num="6";
break;
case 6:
num="7";
break;
case 7:
num="8";
break;
case 8:
num="9";
break;
case 9:
num="10";
break;
case 10:
num="Jack";
break;
case 11:
num="Queen";
break;
case 12:
num="King";
break;
}
switch(color){
case 0:
col="Diamonds";
break;
case 1:
col="Hearts";
break;
case 2:
col="Spades";
break;
case 3:
col="Clubs";
break;
}
System.out.println("The card you picked is "+num+" of "+col);
}
}
import java.util.Scanner;
public class Demo3_12 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//1.输入四个坐标点
System.out.print("Enter 4 points:");
double x1=scanner.nextDouble();
double y1=scanner.nextDouble();
double x2=scanner.nextDouble();
double y2=scanner.nextDouble();
double x3=scanner.nextDouble();
double y3=scanner.nextDouble();
double x4=scanner.nextDouble();
double y4=scanner.nextDouble();
//2.结合方程组 计算方程组中的系数和常数项
double a=y1-y2;
double b=-(x1-x2);
double c=y3-y4;
double d=-(x3-x4);
double e=(y1-y2)*x1-(x1-x2)*y1;
double f=(y3-y4)*x3-(x3-x4)*y3;
//3.判断方程组是否有解
double delt=a*d-b*c;
if(delt==0){
System.out.println("The two line are parallel");
}else{
double x=(e*d-b*f)/delt;
double y=(a*f-e*c)/delt;
System.out.println("x="+x+",y="+y);
}
}
}
import java.util.Scanner;
public class Demo3_13 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("Enter x,y:");
double x=scanner.nextDouble();
double y=scanner.nextDouble();
if(x>=0&&x<=200){
if((200-x)/y>=2){
System.out.println("int");
return;//直接结束函数 谨慎使用
}
}
System.out.println("out");
}
}
import java.util.Scanner;
public class Demo3_14 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//1.输入两个矩形的宽高和中心坐标
System.out.print("Enter r1:");
double xo=scanner.nextDouble();
double yo=scanner.nextDouble();
double W=scanner.nextDouble();
double H=scanner.nextDouble();
System.out.print("Enter r2:");
double x=scanner.nextDouble();
double y=scanner.nextDouble();
double w=scanner.nextDouble();
double h=scanner.nextDouble();
//2.计算是否r2在r1内
if(x<=(W/2-w/2+xo)&&x>=(xo-W/2+w/2)&&y<=(H/2-h/2+yo)&&y>=(yo-H/2+h/2)){
System.out.println("r2 in r1");
//计算是否r2在r1外
}else if(x>=(W/2+w/2+xo)||x<=(xo-W/2-w/2)||y>=(H/2+h/2+yo)||y<=(yo-H/2-h/2)){
System.out.println("r2 out r1");
}else{
System.out.println("r2 overlaps r1");
}
}
}
import java.util.Scanner;
public class Demo3_15 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//1.输入两个圆的信息 圆心坐标 半径
System.out.print("Enter circle1:");
double x1=scanner.nextDouble();
double y1=scanner.nextDouble();
double r1=scanner.nextDouble();
System.out.print("Enter circle2:");
double x2=scanner.nextDouble();
double y2=scanner.nextDouble();
double r2=scanner.nextDouble();
//2.计算两圆心之间的距离
double distance=Math.sqrt(Math.pow(x1-x2, 2)+Math.pow(y1-y2, 2));
//3.判断距离所表示的两圆之间的关系
if(distance<=Math.abs(r1-r2)){
System.out.println("c2 in c1");
}else if(distance>=r1+r2){
System.out.println("c2 out c1");
}else{
System.out.println("c2 overlaps c1");
}
}
}
import java.util.Scanner;
public class Demo3_16 {
public static void main(String[] args) {
//1.输入三个点的坐标 p0 p1 p2
Scanner scanner=new Scanner(System.in);
System.out.print("Enter p0,p1,p2:");
double x0=scanner.nextDouble();
double y0=scanner.nextDouble();
double x1=scanner.nextDouble();
double y1=scanner.nextDouble();
double x2=scanner.nextDouble();
double y2=scanner.nextDouble();
//计算结果
double res=(x1-x0)*(y2-y0)-(x2-x0)*(y1-y0);
if(res>0){
System.out.println("p2 left to line");
}else if(res==0){
System.out.println("p2 on the line");
}else{
System.out.println("p2 right to line");
}
}
}
相关文章
- 暂无相关文章
用户点评