目录
if语句的三种格式
单分支
简写语法
可能出现的异常
双分支
else if 是多分支件判断·与纯if两者区别
案例一、判断一个正整数的奇偶性
案例二、考试奖励
switch语句三种用法
switch 标准方式
标准demo·数字判断
String类型switch示例·jdk1.7以上才支持·jdk1.7以下需要使用枚举/hashCode
枚举判断
使用【hashCode】
巧用break
default作用
以下为JAVA_14的语法
用法:">switch - > 用法:
switch yield 用法:
石头剪刀布 测试代码:
if语句的三种格式
1. if语句
格式:if(判断语句){
执行的程序
}
2.if...else语句
格式:if(判断语句){
执行的程序1
} else{
执行程序2
}
3.if...elseif...elseif.....语句
格式:if(判断语句1){
执行语句1
}else if(判断语句2){
执行语句2
}else if(判断语句3){
执行语句3
}.............
单分支
public class HelloWorld {
public static void main(String[] args) {
boolean b = true;
//如果成立就打印yes
if(b){
System.out.println("yes");
}
}
}
简写语法
public class HelloWorld {
public static void main(String[] args) {
boolean b = false;
//如果有多个表达式,必须用大括弧包括起来
if(b){
System.out.println("yes1");
System.out.println("yes2");
System.out.println("yes3");
}
//否则表达式2 3 无论b是否为true都会执行
if(b)
System.out.println("yes1");
System.out.println("yes2");
System.out.println("yes3");
//如果只有一个表达式可以不用写括弧,看上去会简约一些
if(b){
System.out.println("yes1");
}
if(b)
System.out.println("yes1");
}
}
可能出现的异常
在第6行,if后面有一个分号; 而分号也是一个完整的表达式
如果b为true,会执行这个分号,然后打印yes
如果b为false,不会执行这个分号,然后打印yes
这样,看上去无论如何都会打印yes
public class HelloWorld {
public static void main(String[] args) {
boolean b = false;
//注意分号位置
if (b);
System.out.println("yes");
}
}
双分支
public class HelloWorld {
public static void main(String[] args) {
boolean b = false;
if (b)
System.out.println("yes");
else
System.out.println("no");
}
}
else if 是多分支件判断·与纯if两者区别
public class HelloWorld {
public static void main(String[] args) {
//如果只使用 if,会执行4次判断
int i = 2;
if (i==1)
System.out.println(1);
if (i==2)
System.out.println(2);
if (i==3)
System.out.println(3);
if (i==4)
System.out.println(4);
//如果使用else if, 一旦在18行,判断成立, 20行和22行的判断就不会执行了,节约了运算资源
if (i==1)
System.out.println(1);
else if (i==2)
System.out.println(2);
else if (i==3)
System.out.println(3);
else if (i==4)
System.out.println(4);
}
}
案例一、判断一个正整数的奇偶性
这里面我加入了一个输入语句:
学过的就当我打的都是废话,要是刚接触java的学生不懂话,你就理解成,如果你要是想在CMD中输入整型变量就把这三行打上就行了。
注意包名:
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
boolean b = true;
//如果成立就打印yes
if(b){
System.out.println("yes");
}
}
}
简写语法
public class HelloWorld {
public static void main(String[] args) {
boolean b = false;
//如果有多个表达式,必须用大括弧包括起来
if(b){
System.out.println("yes1");
System.out.println("yes2");
System.out.println("yes3");
}
//否则表达式2 3 无论b是否为true都会执行
if(b)
System.out.println("yes1");
System.out.println("yes2");
System.out.println("yes3");
//如果只有一个表达式可以不用写括弧,看上去会简约一些
if(b){
System.out.println("yes1");
}
if(b)
System.out.println("yes1");
}
}
可能出现的异常
在第6行,if后面有一个分号; 而分号也是一个完整的表达式
如果b为true,会执行这个分号,然后打印yes
如果b为false,不会执行这个分号,然后打印yes
这样,看上去无论如何都会打印yes
public class HelloWorld {
public static void main(String[] args) {
boolean b = false;
//注意分号位置
if (b);
System.out.println("yes");
}
}
双分支
public class HelloWorld {
public static void main(String[] args) {
boolean b = false;
if (b)
System.out.println("yes");
else
System.out.println("no");
}
}
else if 是多分支件判断·与纯if两者区别
public class HelloWorld {
public static void main(String[] args) {
//如果只使用 if,会执行4次判断
int i = 2;
if (i==1)
System.out.println(1);
if (i==2)
System.out.println(2);
if (i==3)
System.out.println(3);
if (i==4)
System.out.println(4);
//如果使用else if, 一旦在18行,判断成立, 20行和22行的判断就不会执行了,节约了运算资源
if (i==1)
System.out.println(1);
else if (i==2)
System.out.println(2);
else if (i==3)
System.out.println(3);
else if (i==4)
System.out.println(4);
}
}
案例一、判断一个正整数的奇偶性
这里面我加入了一个输入语句:
学过的就当我打的都是废话,要是刚接触java的学生不懂话,你就理解成,如果你要是想在CMD中输入整型变量就把这三行打上就行了。
注意包名:
import java.util.Scanner;
在第6行,if后面有一个分号; 而分号也是一个完整的表达式
如果b为true,会执行这个分号,然后打印yes
如果b为false,不会执行这个分号,然后打印yes
这样,看上去无论如何都会打印yes
public class HelloWorld {
public static void main(String[] args) {
boolean b = false;
//注意分号位置
if (b);
System.out.println("yes");
}
}
双分支
public class HelloWorld {
public static void main(String[] args) {
boolean b = false;
if (b)
System.out.println("yes");
else
System.out.println("no");
}
}
else if 是多分支件判断·与纯if两者区别
public class HelloWorld {
public static void main(String[] args) {
//如果只使用 if,会执行4次判断
int i = 2;
if (i==1)
System.out.println(1);
if (i==2)
System.out.println(2);
if (i==3)
System.out.println(3);
if (i==4)
System.out.println(4);
//如果使用else if, 一旦在18行,判断成立, 20行和22行的判断就不会执行了,节约了运算资源
if (i==1)
System.out.println(1);
else if (i==2)
System.out.println(2);
else if (i==3)
System.out.println(3);
else if (i==4)
System.out.println(4);
}
}
案例一、判断一个正整数的奇偶性
这里面我加入了一个输入语句:
学过的就当我打的都是废话,要是刚接触java的学生不懂话,你就理解成,如果你要是想在CMD中输入整型变量就把这三行打上就行了。
注意包名:
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
//如果只使用 if,会执行4次判断
int i = 2;
if (i==1)
System.out.println(1);
if (i==2)
System.out.println(2);
if (i==3)
System.out.println(3);
if (i==4)
System.out.println(4);
//如果使用else if, 一旦在18行,判断成立, 20行和22行的判断就不会执行了,节约了运算资源
if (i==1)
System.out.println(1);
else if (i==2)
System.out.println(2);
else if (i==3)
System.out.println(3);
else if (i==4)
System.out.println(4);
}
}
案例一、判断一个正整数的奇偶性
这里面我加入了一个输入语句:
学过的就当我打的都是废话,要是刚接触java的学生不懂话,你就理解成,如果你要是想在CMD中输入整型变量就把这三行打上就行了。
注意包名:
import java.util.Scanner;
这里面我加入了一个输入语句:
学过的就当我打的都是废话,要是刚接触java的学生不懂话,你就理解成,如果你要是想在CMD中输入整型变量就把这三行打上就行了。
注意包名:
编码:
import java.util.Scanner;
public class HelloWorld {
public static void main (String[] args){
System.out.println("输入一个正整数:");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
if(number % 2 == 0){
System.out.println(number+"是整数");
}else {
System.out.println(number+"是奇数");
}
}
}
案例二、考试奖励
小明期末考试,爸爸承诺如果小明考了:
1、100 - 95分奖励小明山地自行车一辆;
2、94 - 90分奖励小明到游乐园玩一天;
3、89 - 80分奖励变形金刚一个;
4、80分一下小明被胖揍一顿;
import java.util.Scanner;
public class HelloWorld {
public static void main (String[] args){
System.out.println("输入小明的成绩:");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
if(number<0 || number >100){
System.out.println("输入的成绩是错误的:");
}else if(number >=95&&number<=100){
System.out.println("小明获得山地自行车一辆");
}else if(number >= 90&&number<=94){
System.out.println("小明可以到游乐场去玩一次");
}else if(number >= 80&&number<=89){
System.out.println("小明获得变形金刚一个");
}else{
System.out.println("胖揍小明一顿");
}
}
}
小明期末考试,爸爸承诺如果小明考了:
1、100 - 95分奖励小明山地自行车一辆;
2、94 - 90分奖励小明到游乐园玩一天;
3、89 - 80分奖励变形金刚一个;
4、80分一下小明被胖揍一顿;
嵌套if编码:
package Action;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("输入小明的成绩:");
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
if (number > 0 && number <= 100) {
if (number >= 95 && number <= 100) {
System.out.println("小明获得山地自行车一辆");
} else if (number >= 90 && number <= 94) {
System.out.println("小明可以到游乐场去玩一次");
} else if (number >= 80 && number <= 89) {
System.out.println("小明获得变形金刚一个");
} else {
System.out.println("胖揍小明一顿");
}
} else {
System.out.println("输入的成绩是错误的;");
}
}
}
switch语句三种用法
使用switch这个关键词, 我们可以很好的解决if…else 中多重选择的尴尬场面!
switch 标准方式
flag(标示)表示计算结果, 必须是整性, 字符串类型, 或者枚举类型。
switch (flag){undefined
case 0 : 语句一; break;
case 1: 语句二; break;
default: 语句n; break;
}
标准demo·数字判断
int flag = 3;
switch (flag){
case 0: System.out.println("The number is 0" ); break;
case 1: System.out.println("The number is 1" ); break;
case 2: System.out.println("The number is 2" ); break;
default: System.out.println("no have choose" ); break;
}
这是一个很标准的 switch 的用法, 有break, 还有 default ,在什么情况下跳出, 在什么情况下结束运行, 都很清楚的说明了, 但是朋友们在写这个代码的时候, 有可能会忘记加入break 或者 忘记 加入 default 这样的问题吧。
String类型switch示例·jdk1.7以上才支持·jdk1.7以下需要使用枚举/hashCode
package Action;
public class HelloWorld {
public static void main(String args[]) {
String str = "C" ;
switch (str) {
case "A" :
System.out.println( "A" );
break ;
case "B" :
System.out.println( "B" );
break ;
case "C" :
System.out.println( "C" );
break ;
default :
System.out.println( 0 );
}
}
}
枚举判断
package Action;
public class HelloWorld {
static enum E {
A, B, C, D
}
public static void main(String args[]) {
E e = E.B;
switch (e) {
case A:
System.out.println( "A" );
break ;
case B:
System.out.println( "B" );
break ;
case C:
System.out.println( "C" );
break ;
case D:
System.out.println( "D" );
break ;
default :
System.out.println( 0 );
}
}
}
使用【hashCode】
可以看到hashCode与char是相同的,那么进行数字判断或者其它字符串判断都是一样的,支持硬件更换。
package Action;
public class HelloWorld {
public static void main(String args[]) {
String x = "2";
System.out.println("hashCode:"+x.hashCode());
System.out.println("char:"+(int) '2');
int x_int = x.hashCode();
switch (x_int) {
case 50:
System.out.println(2);
break;
case 51:
System.out.println(3);
break;
default:
System.out.println("default");
break;
}
}
}
巧用break
输出2022年指定月份的最大天数·这里可以替换年份
package Action;
public class HelloWorld {
public static void main(String args[]) {
int year = 2022 ;
int month = 2 ;
int day = 0 ;
switch (month) {
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 :
day = 31 ;
break ;
case 2 :
boolean b=(year%4==0&&year%100!=0)||year%400==0;
day = b?29:28 ;
break ;
case 4 :
case 6 :
case 9 :
case 11 :
day = 30 ;
break ;
}
System.out.println(day);
}
}
default作用
flag(标示)表示计算结果, 必须是整性, 字符串类型, 或者枚举类型。
int flag = 3;
switch (flag){
case 0: System.out.println("The number is 0" ); break;
case 1: System.out.println("The number is 1" ); break;
case 2: System.out.println("The number is 2" ); break;
default: System.out.println("no have choose" ); break;
}
这是一个很标准的 switch 的用法, 有break, 还有 default ,在什么情况下跳出, 在什么情况下结束运行, 都很清楚的说明了, 但是朋友们在写这个代码的时候, 有可能会忘记加入break 或者 忘记 加入 default 这样的问题吧。
String类型switch示例·jdk1.7以上才支持·jdk1.7以下需要使用枚举/hashCode
package Action;
public class HelloWorld {
public static void main(String args[]) {
String str = "C" ;
switch (str) {
case "A" :
System.out.println( "A" );
break ;
case "B" :
System.out.println( "B" );
break ;
case "C" :
System.out.println( "C" );
break ;
default :
System.out.println( 0 );
}
}
}
枚举判断
package Action;
public class HelloWorld {
static enum E {
A, B, C, D
}
public static void main(String args[]) {
E e = E.B;
switch (e) {
case A:
System.out.println( "A" );
break ;
case B:
System.out.println( "B" );
break ;
case C:
System.out.println( "C" );
break ;
case D:
System.out.println( "D" );
break ;
default :
System.out.println( 0 );
}
}
}
使用【hashCode】
可以看到hashCode与char是相同的,那么进行数字判断或者其它字符串判断都是一样的,支持硬件更换。
package Action;
public class HelloWorld {
public static void main(String args[]) {
String x = "2";
System.out.println("hashCode:"+x.hashCode());
System.out.println("char:"+(int) '2');
int x_int = x.hashCode();
switch (x_int) {
case 50:
System.out.println(2);
break;
case 51:
System.out.println(3);
break;
default:
System.out.println("default");
break;
}
}
}
巧用break
输出2022年指定月份的最大天数·这里可以替换年份
package Action;
public class HelloWorld {
public static void main(String args[]) {
int year = 2022 ;
int month = 2 ;
int day = 0 ;
switch (month) {
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 :
day = 31 ;
break ;
case 2 :
boolean b=(year%4==0&&year%100!=0)||year%400==0;
day = b?29:28 ;
break ;
case 4 :
case 6 :
case 9 :
case 11 :
day = 30 ;
break ;
}
System.out.println(day);
}
}
default作用
package Action;
public class HelloWorld {
static enum E {
A, B, C, D
}
public static void main(String args[]) {
E e = E.B;
switch (e) {
case A:
System.out.println( "A" );
break ;
case B:
System.out.println( "B" );
break ;
case C:
System.out.println( "C" );
break ;
case D:
System.out.println( "D" );
break ;
default :
System.out.println( 0 );
}
}
}
使用【hashCode】
可以看到hashCode与char是相同的,那么进行数字判断或者其它字符串判断都是一样的,支持硬件更换。
package Action;
public class HelloWorld {
public static void main(String args[]) {
String x = "2";
System.out.println("hashCode:"+x.hashCode());
System.out.println("char:"+(int) '2');
int x_int = x.hashCode();
switch (x_int) {
case 50:
System.out.println(2);
break;
case 51:
System.out.println(3);
break;
default:
System.out.println("default");
break;
}
}
}
巧用break
输出2022年指定月份的最大天数·这里可以替换年份
package Action;
public class HelloWorld {
public static void main(String args[]) {
int year = 2022 ;
int month = 2 ;
int day = 0 ;
switch (month) {
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 :
day = 31 ;
break ;
case 2 :
boolean b=(year%4==0&&year%100!=0)||year%400==0;
day = b?29:28 ;
break ;
case 4 :
case 6 :
case 9 :
case 11 :
day = 30 ;
break ;
}
System.out.println(day);
}
}
default作用
可以看到hashCode与char是相同的,那么进行数字判断或者其它字符串判断都是一样的,支持硬件更换。
巧用break
输出2022年指定月份的最大天数·这里可以替换年份
package Action;
public class HelloWorld {
public static void main(String args[]) {
int year = 2022 ;
int month = 2 ;
int day = 0 ;
switch (month) {
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 :
day = 31 ;
break ;
case 2 :
boolean b=(year%4==0&&year%100!=0)||year%400==0;
day = b?29:28 ;
break ;
case 4 :
case 6 :
case 9 :
case 11 :
day = 30 ;
break ;
}
System.out.println(day);
}
}
default作用
输出2022年指定月份的最大天数·这里可以替换年份
default在当前switch找不到匹配的case时执行。default并不是必须的。
package Action;
public class HelloWorld {
public static void main(String args[]) {
int x = 0 ;
switch (x) {
case 1 :
System.out.println( 1 );
case 2 :
System.out.println( 2 );
default :
System.out.println( "default" );
}
}
}
以下为JAVA_14的语法
switch - > 用法:
使用 - > 方法更加简单, 就不用使用 break 命令, 保证只有一种路径会被执行!
使用 - > 方法更加简单, 就不用使用 break 命令, 保证只有一种路径会被执行!
用法如下:
int flag = 3;
switch (flag){
case 0 -> System.out.println("The number is 0" );
case 1 -> System.out.println("The number is 1" );
case 2 -> System.out.println("The number is 2" );
default -> System.out.println("no have choose" );
}
去掉了 break 和 冒号 取代的使用 箭头 ->
switch yield 用法:
看到 yield 的时候, 我就在想, 这一定要传值回来的函数。 用法 也很简单,
但是需要注意一点, 传值回去, 外部一定要定义个参数 用来接受这个值。
int flag = 2;
String ss;
ss = switch (flag){
case 0 -> "The number is 0" ;
case 1 -> "The number is 1" ;
case 2 -> {
String c = "The number is 2";
yield c;
}
default -> "no have choose";
};
System.out.println(ss);
看到 yield 的时候, 我就在想, 这一定要传值回来的函数。 用法 也很简单,
但是需要注意一点, 传值回去, 外部一定要定义个参数 用来接受这个值。
这里来说, switch 作为了 一条语句, 所以末尾要加冒号, 其他用法相同, 下次如果条件很多的话, 就不用使用 if else ,可以考虑使用 switch 中的yield 返回参数方式了!
石头剪刀布 测试代码:
学了switch的这些用法, 我想应该写个程序来试试吧, 所以就写了个石头剪刀布的小游戏
package Action;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) { ;
int inp=0; //定义输入的数值
String sRnd=""; //随机数表示出拳
int numWin=0; //胜场
int numLost=0; //负场
while (true) {
boolean flag=true; //立个flag备用
int rnd = (int) (1 + Math.random() * 3);
System.out.print("请输入【剪刀】、【石头】或【布】,输入【退出】结束游戏:");
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
String sInp = sc.next();
switch (sInp) {//输入文字转数字
case "剪刀":
inp = 1;
break;
case "石头":
inp = 2;
break;
case "布":
inp = 3;
break;
case "退出":
System.out.println("您已退出!n ");
return;
default:
System.out.println("输入有误! n");//输入错误时flag为假
flag=false;
break;
}
switch (rnd) {//随机数转换成出拳
case 1:
sRnd = "剪刀";
break;
case 2:
sRnd = "石头";
break;
case 3:
sRnd = "布";
break;
default:
break;
}
if (flag==false){//前面立的flag为假了,跳过这次循环
continue;
} else if (inp == rnd) {
System.out.println("平局! 电脑也是"+sRnd+" 胜"+numWin+"负"+numLost+"n");
} else if (inp == 1 && rnd == 3 || inp == 2 && rnd == 1 || inp == 3 && rnd == 2) { //列出所有胜局情况
System.out.println("你赢了!电脑是"+sRnd+" 胜"+ ++numWin+"负"+numLost+"n");
} else {
System.out.println("电脑胜!电脑是 "+sRnd+" 胜"+numWin+"负"+ ++numLost+"n"); //其他都是负局情况
}
}
}
}
学了switch的这些用法, 我想应该写个程序来试试吧, 所以就写了个石头剪刀布的小游戏
希望能对大家有所帮助,欢迎一键三连。



