01-Java语法基础(五)-知识

01-Java语法基础(五)-知识


一、条件分支语句 - if语句

1.1 格式一:

if(条件表达式){
	代码块;
}

表示:如果条件表达式成立(结果为true)就会执行代码块,否则就不执行。

注意:
1.条件表达式-由关系运算符或者逻辑运算符组成的,结果为true或者false的表达式
2.当且仅当if语句里面只有一行代码时大括号可以省略,但不建议这样做。

在这里插入图片描述

1.1.1 案例:

题目:在招聘Java工程师时,要求两年工作经验以上且年龄超过 30 岁。

int age=35;
int workAge=10;
if(age>30&&workAge>2){
    System.out.println("可以进入面试");
}

       在上面案例中,age为35岁满足年龄超过30岁条件并且工作经验workAge为10满足工作经验两年以上的条件,因此最后运行的结果是 “可以进入面试”。

题目:如果买彩票中了500万就去买豪车

Scanner key = new Scanner(System.in); 
System.out.println("今天买彩票有没有中500万?有Q1,没有Q2"); 
int answer = key.nextInt();//answer=2 
if(answer==1){ 
	System.out.println("我的账户有500万"); 
	System.out.println("终于有钱了,买豪车去~"); 
}
System.out.println("该吃吃该喝喝该睡睡");

1.2 格式二

if(条件表达式) {
 	代码块1} else {
	 代码块2}
 表示:如果条件标的式成立就执行代码块1,如果不成立执行代码块2

在这里插入图片描述

if(判断条件){ 
    //如果符合条件执行的代码; 执行的代码块 
    System.out.println("条件为真时运行我"));
}else{
    //如果不符合条件执行的代码块
    System.out.println("条件为假时运行我"));
}
//这里的代码一定会被执行
System.out.println("if运行后一定会运行我"));

1.2.1 案例

题目:输入数字,判断这个数是奇数还是偶数

System.out.println("请输入要判断的数字:"); 
int number = key.nextInt(); 
if(number%2==0){ 
	System.out.println(number+"是偶数"); 
}else{
	System.out.println(number+"是奇数"); 
}

1.3 格式三:

if(条件表达式){
	 代码块1
}else if(条件表达式2{
	 代码块2
}... //这里很多else if
else{
 	代码块
}
表示:从上到下依次判断条件是否成立,如果成绩就执行对应代码块内容,
如果条件表达式都不成立就执行else中的代码;

注意:当一旦有条件表达式成立并执行代码后,整个if语句就会结束,无论后面条件表达式是否成立都不会再执行
在这里插入图片描述

1.3.1 案例:

题目:根据中奖的金额,判断买什么样的车

	System.out.println("请输入要判断的数字:"); 
	int number = key.nextInt(); 
	if(number%2==0){ 
		System.out.println(number+"是偶数"); 
	}else{
		System.out.println(number+"是奇数"); 
	}
	System.out.println("今天买彩票中了多少money?"); 
	int money = key.nextInt(); 
	if(money>=500) { 
		System.out.println("买兰博基尼"); 
	}else if(money>=200 && money<500) { 
		System.out.println("买卡宴"); 
	}else if(money>=50 && money<200) { 
		System.out.println("买奔驰"); 
	}else if(money>0 && money<50) { 
		System.out.println("买奥迪"); 
	}else { 
		System.out.println("再接再厉"); 
	}
	System.out.println("该吃该喝该睡");

1.4 格式四嵌套

对条件需要做进一步的过滤的时候
案例需求:找到年龄大于20岁,并且工资大于10000的人

public class SalaryTest{ 
    public static void main(String args[]){ 
        int age = 75; 
        if (age>20) { 
        	if(salary>10000){
        		System.out.println("如意郎君!");
        	}else{
                System.out.println("薪资不满足!");
            }
        }else{
          System.out.println("年龄不满足!");
        } 
    } 
}

题目:输入年月,判断这个月有多少天

判断润年公式: year%40&&year%100!=0||year%4000

public class IFTest { 
	public static void main(String[] args) { 
		//定义扫描器 
		Scanner key = new Scanner(System.in);
		//提示输入年份 
		System.out.println("请输入年份:"); 
		//接收输入的年份 
		int year = key.nextInt(); 
		//提示输入月份 
		System.out.println("请输入月份:"); 
		int month = key.nextInt(); 
		//定义变量,接收每个月的天数 
		int days = 0; 
		//如果是1,3,5,7,8,10,12 都是31天 	
		if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){ 	
			//System.out.println(year+"年"+month+"月,一共有31天"); 
			days = 31; 
		}else if(month==4||month==6||month==9||month==11){ 
			//System.out.println(year+"年"+month+"月,一共有30天"); 
			days = 30; 
		}else if(month==2){ 
			//判断是否是润年 
			if(year%4==0&&year%100!=0||year%400==0){ 
				//System.out.println(year+"年"+month+"月,一共有29天"); 
				days = 29; 
			}else{
				//System.out.println(year+"年"+month+"月,一共有28天"); 
				days = 28;
			} 
	   }else{
	   		System.out.println("请正确输入月份"); 
	   	}
	   	System.out.println(year+"年"+month+"月,一共有"+days+"天"); 
	   	key.close(); 
	  } 
}

二、分支结构-switch

2.1 格式:

 switch(表达式expr){
   		case const1:
   			statement1;
   			break;
   		case const2:
   			statement2;
   			break;
   			… …
   		case constN:
  			statementN;
   			break;
   		default:
   			statement_dafault;
   			break;
  } 
  1. 表达式expr的值必须是下述几种类型之一:
    ​ int, byte, char, short,enum;java7之后可以是String,不能用boolean,long,float,double等.
  2. case子句中的值const 必须是常量值(或final的变量),case中的值不能是一个范围
  3. 所有case子句中的值应是不同的,否则会编译出错;
  4. default子句是可选的(不必要)
  5. break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去

注意:所有的 case 都不满足需求的时候 执行default中的内容 break 帮助跳出switch 语句的, 如果执行过程中 没有遇到 break 继续向下执行直到遇到break为止
在这里插入图片描述

public static void main(String[] args) {
    String season = "summer";
    switch (season) {
    case "spring":
        System.out.println("春暖花开");
        break;
    case "summer":
        System.out.println("夏日炎炎");
        break;
    case "autumn":
        System.out.println("秋高气爽");
        break;
    case "winter":
        System.out.println("冬雪皑皑");
        break;
    default:
        System.out.println("季节输入有误");
        break;
    }
}

2.2 案例:

题目:根据输入的年龄,输出判断目前所处的阶段

public class SwitchTest {
    public static void main(String[] args) {
        //控制台输入对象
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入您的年龄:");
        int age=sc.nextInt();
        if(age>110 || age<10 ){
            System.out.println("为了您的健康,禁止前往测试:");
        }
        switch (age/10){
            case 1:
                System.out.println("我还是从前那个少年,没有一丝丝改变...");break;
            case 2:
                System.out.println("弱冠:《礼记·曲礼上》:男子二十冠而字...");break;
            case 3:
                System.out.println("而立:《论语·为政》:吾十有五而志于学,三十而立...");break;
            case 4:
                System.out.println("不惑:《论语·为政》:四十而不惑。");break;
            case 5:
                System.out.println("知天命:《论语·为政》:五十而知天命。");break;
            case 6:
                System.out.println("花甲: 天干有十,地支十二,十天干和十二地支按照顺序搭配成六十个单位");break;
            case 7:
                System.out.println("古稀: 杜甫《曲江二首》:酒债寻常行处有,人生七十古来稀");break;
            case 10:
                System.out.println("期颐:《礼记·曲礼上》:百年曰期颐。");break;
            default:
                System.out.println("耄耋之年:年八十曰耊。字亦作耋。——东汉·许慎《说文》");

        }
         //衣服的大小码
        System.out.println("请输入您的衣服大小:大码,中码,小码---");
        String num=sc.next();
        switch (num){
            case "大码":
                System.out.println("你选择的是大码");break;
            case "中码":
                System.out.println("你选择的是中码");break;
            case "小码":
                System.out.println("你选择的是小码");break;
            default:
                    System.out.println("您选择码数不存在!");
        }
    }
}

题目:输入某年某月某日,判断这一天是这一年的第几天?

public class SwitchTest1 { 
	public static void main(String[] args) { 
		Scanner key = new Scanner(System.in); 
		System.out.println("请输入年份:"); 
		int year = key.nextInt(); 
		System.out.println("请输入月份:"); 
		int month = key.nextInt(); 
		System.out.println("请输入日期:"); 
		int day = key.nextInt(); 
		int sum = 0; 
		switch (month - 1) { 
			case 0: sum = 0;break; 
			case 1://31 
				sum = 31;break; 
			case 2://28
				 sum = 59;break; 
			case 3://31 
				 sum = 90;break; 
			case 4: 
				 sum = 120;break; 
			case 5://31 
				sum = 151;break; 
			case 6: 
				sum = 181;break; 
			case 7://31 
				sum = 212;break; 
			case 8://31 
				sum = 243;break; 
			case 9: 
				sum = 273;break; 
			case 10://31 
				sum = 304;break; 
			case 11://30 
				sum = 334;break; 
		}
		if ((month > 2) && isLeap(year)) { 
			System.out.printf("这天是这年的第%d天", sum+day+1);//%f 小数 o八进制 x十六进制 
		}else { 
			System.out.printf("这天是这年的第%d天", sum+day);
		} 
	}
	//润年:29:四年一闰,百年不闰,四百年再闰 // 平年:28 
	private static boolean isLeap(int year) { 
		if ((year % 100 != 0 && (year % 4 == 0) || year % 400 == 0)) { 
			return true; 
		}
		return false; 
	} 
}

二、switch 和 if语句的对比

  1. 如果判断的具体数值不多,而且符合byte、short 、char、int、String、枚举等几 种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
  2. 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。 也就是说,使用switch-case的,都可以改写为if-else。反之不成立。

三、本节内容有问题的可以扫描下方QQ二维码寻求帮助

在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听潮阁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值