我是靠谱客的博主 彩色饼干,最近开发中收集的这篇文章主要介绍零基础学javaDay04Day04,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Day04

一、Java的执行语句

1.顺序语句

含义:方法中的代码从往下执行

2.分支语句

含义:根据不同的条件,指定不同的功能
2.1 if分支
2.2 switch分支

3.循环语句

含义:条件成立,就重复性的执行某个功能
3.1 for循环
3.2 while循环
3.3 do-while循环

4.特殊的流程控制语句

4.1 break
4.2 continue
4.3 return
4.4 lable

二、简单的if分支

1.语法结构

if(表达式){
…代码块…
}

2.理解

表达式的结果必须是boolean类型
true - 执行代码块
false - 跳出if分支

3.做实验

if(false){
    System.out.println("...代码块...");
}
System.out.println("if分支以外的代码");

三、复杂的if分支

1.案例一

人类的健康值在20-25的数值内为健康
健康值算法为:体重(Kg) / 身高(米)的平方)

//1.输入体重和身高
Scanner scan = new Scanner(System.in);
System.out.println("请输入体重(Kg):");
double wigth = scan.nextDouble();
System.out.println("请输入身高(M):");
double heigth = scan.nextDouble();

//2.计算健康值
double health =  wigth/(heigth*heigth);

//3.判断
if(health>20 && health<25){
    System.out.println("小护士说:"健康,继续保持"");
}

2.案例二

小西满里惠Java成绩大于98分,而且音乐成绩大于80分,老师奖励他;
或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他。

Scanner scan = new Scanner(System.in);
System.out.println("请输入Java成绩:");
double javaScore = scan.nextDouble();
System.out.println("请输入音乐成绩:");
double musicScore = scan.nextDouble();

if((javaScore>98&&musicScore>80) || (javaScore==100&&musicScore>70)){
    System.out.println("奖励小西满里惠 仙女棒一根");
}

3.总结

  1. if可以判断区间
  2. if可以判断复杂的条件
  3. 变量的驼峰命名法:除了第一个单词,其余的单词首字母大写

四、if…else…

1.语法结构

if(表达式){
…代码块…
}else{
…else代码块…
}

2.理解

表达式的结果必须是boolean
true - 执行代码块
false- 执行else代码块

3.做实验

if(false){
    System.out.println("...代码块...");
}else{
    System.out.println("...else代码块...");
}
System.out.println("if分支以外的代码");

4.案例

如果水菜丽Java考试成绩大于98分,
老师就奖励他一个劳斯莱斯,否则老师就罚他进行编码

Scanner scan = new Scanner(System.in);
System.out.println("请输入Java成绩:");
double score = scan.nextDouble();

if(score > 98){
    System.out.println("奖励水菜丽劳斯莱斯玩具赛车一辆");
}else{
    System.out.println("何老师给水菜丽通宵补课~~~");
}

5.总结

二选一的需求时考虑使用if…else…

五、if…else if…

1.语法结构

if(表达式1){
    ...代码块1...
}else if(表达式2){
    ...代码块2...
}else if(表达式n){
    ...代码块n...
}else{
    ...else代码块...
}

2.理解

表达式的结果必须是boolean
从上往下依次判断表达式,哪个表达式先为true,就执行对应的代码块
所有的表达式都不为true,就执行else代码块
注意:else{}根据需求可写可不写

3.做实验

if(false){
    System.out.println("...代码块1...");
}else if(false){
    System.out.println("...代码块2...");
}else if(false){
    System.out.println("...代码块n...");
}else{
    System.out.println("...else代码块...");
}
System.out.println("if分支以外的代码");

4.案例一

人类的健康值在
15-20的数值内为偏瘦
20-25的数值内为健康
25-30的数值内为偏胖
(健康值算法为:体重(Kg) / 身高(米)的平方)

//输入体重、身高
Scanner scan = new Scanner(System.in);
System.out.println("请输入体重(Kg):");
double wigth = scan.nextDouble();
System.out.println("请输入身高(M):");
double heigth = scan.nextDouble();

//计算健康值
double health =  wigth/(heigth*heigth);

//判断
if(health > 15 && health<=20){
    System.out.println("小护士说:"偏瘦,多喝啤酒、多吃垃圾食品、多熬夜"");
}else if(health > 20 && health <= 25){
    System.out.println("小护士说:"健康,继续保持"");
}else if(health > 25 && health <= 30 ){
    System.out.println("小护士说:"偏胖,多做运动,嘿嘿嘿~~~"");
}else{
    System.out.println("小护士说:"健康值异常,请到医院详细检查"");
}

5.案例二

通过键盘录入学生成绩
如果在90-100之间,则打印“A”,
否则如果在80-90之间,则打印“B”,
否则如果在70-80之间,则打印“C”
否则如果在60-70之间,则打印“D”
否则如果在0 -60之间,则打印“E”
否则打印“成绩异常”

Scanner scan = new Scanner(System.in);
System.out.println("请输入成绩:");
double score = scan.nextDouble();

if(score >= 90 && score <= 100){
    System.out.println("A");
}else if(score >= 80 && score < 90){
    System.out.println("B");
}else if(score >= 70 && score < 80){
    System.out.println("C");
}else if(score >= 60 && score < 70){
    System.out.println("D");
}else if(score >= 0 && score < 60){
    System.out.println("E");
}else{
    System.out.println("成绩异常");
}

6.总结

多选一的需求时考虑使用if…else if…

六、嵌套if分支

1.案例

千锋举行运动会,百米赛跑跑入16秒内的学生有资格进决赛,

根据性别分别进入男子组和女子组。

public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入成绩:");
		double score = scan.nextDouble();
		
		if(score > 0 && score < 16){
			
			System.out.println("请输入性别:");
			String sex = scan.next();//输入字符串
			if(sex.equals("男")){//判断sex和"男"这两个字符串内容是否相等
				System.out.println("恭喜进入到男子组决赛");
			}else if(sex.equals("女")){//判断sex和"女"这两个字符串内容是否相等
				System.out.println("恭喜进入到女子组决赛");
			}else{
				System.out.println("性别异常");
			}
		}else if(score >= 16){
			System.out.println("重在参与");
		}else{
			System.out.println("成绩异常");
		}

2.总结if语法的区别

if(){}:最简单的if
if…else…:二选一
if…else if…:多选一
if可以无限层嵌套

3.if应用场景

可以判断单个值
可以判断区间
可以判断复杂的条件

七、switch分支

1.语法结构

switch(表达式){
case 值1:
…代码块1…
break;
case 值2:
…代码块2…
break;
case 值n:
…代码块n…
break;
default:
…default代码块…
break;
}

2.理解

表达式的结果可以是:byte、short、int、枚举(JDK1.5)、String(JDK1.7)
分别和值1、值2、值n比较,哪个相等,就执行对应的代码块
break:跳出switch分支语句
default代码块类似于else{},是其余其他情况的意思,根据需求可写可不写

3.做实验

switch(5000){
    case 10:
        System.out.println("10");
        break;
    case 50:
        System.out.println("50");
        break;
    case 100:
        System.out.println("100");
        break;
    default:
        System.out.println("...default代码块...");
        break;
}
System.out.println("switch分支以外的代码");

4.案例

明日花绮罗参加计算机编程大赛
如果获得第一名,将参加千锋组织的1个月马尔代夫旅游
如果获得第二名,将奖励苹果Pro笔记本电脑一部
如果获得第三名,将奖励移动硬盘一个
否则,何老师晚上给明日花绮罗通宵补课

public static void main(String[] args){
		
    Scanner scan = new Scanner(System.in);
    System.out.println("请输入比赛名次:");
    String str = scan.next();

    switch(str){
        case "第一名":
            System.out.println("和何老师一起参加千锋组织的1个月马尔代夫旅游");
            break;
        case "第二名":
            System.out.println("奖励苹果Pro笔记本电脑一部");
            break;
        case "第三名":
            System.out.println("奖励移动硬盘一个");
            break;
        default:
            System.out.println("何老师晚上给明日花绮罗通宵补课");
            break;
    }

}

八、深入switch分支

1.面试题

case的值可以相同吗?不可以
default可以省略吗?可以
break可以省略吗?可以
default的位置一定要在最后吗?不一定
case后面值的类型可以不一样吗?可以不一样,但是必须兼容
表达式值的类型可以是什么?byte、short、int、枚举(JDK1.5)、String(JDK1.7)

2.底层理解

switch表达式的类型为什么只有byte、short、int、枚举(JDK1.5)、String(JDK1.7)?
switch表达式的结果在底层只接受int
byte自动转型成int
short自动转型成int
枚举的对象系统会给他赋int
String是获取的ASCII码

public static void main(String[] args){

    switch(97){
        case 10:
            System.out.println("10");
            break;
        case 50:
            System.out.println("50");
            break;
        case 'a':
            System.out.println("97");
            break;
        default:
            System.out.println("...default代码块...");
            break;

    }
    System.out.println("switch分支以外的代码");
}

3.案例

需求:输入年和月,输出当月的天数
闰年:被4整除且不能被100整除 或者 被400整除的年份

//输入年和月
Scanner scan = new Scanner(System.in);
System.out.println("请输入年:");
int year = scan.nextInt();
System.out.println("请输入月:");
int month = scan.nextInt();

int day = 0;//当月的天数

//判断
switch(month){
    case 1:case 3:case 5:case 7:case 8:case 10:case 12:
        day = 31;
        break;
    case 4:case 6:case 9:case 11:
        day = 30;
        break;
    case 2:
        //判断是否是闰年
        if(year%4==0&&year%100!=0 || year%400==0){//闰年
            day = 29;
        }else{//平年
            day = 28;
        }
        break;
}

//输出
System.out.println(year+"年"+month+"月的天数为:" + day + "天");

4.if vs switch语法结构的区别

if的表达式:boolean
switch的表达式:byte、short、int、枚举(JDK1.5)、String(JDK1.7)

5.if vs switch应用场景的区别

if:判断单个值、区间、复杂的条件
switch:判断单个值

九、for循环

1.含义

条件成立就重复执行

2.好处

减少了代码的冗余(减少重复性的代码)

3.语法结构

for(表达式1;表达式2;表达式3){
…代码块…
}

4.理解

表达式1:初始化变量
表达式2:判断条件
表达式3:更新变量

5.执行流程

  1. 初始化变量
  2. 判断条件:判断条件的结果必须是boolean
    2.1 true - 执行代码块,并更新变量,重复第2个步骤
    2.2 false- 跳出整个循环语句

6.做实验

输出去5遍"用良心做教育"

for(int i = 1;i<=5;i++){
    System.out.println("用良心做教育");
}

7.for循环变形记

循环中声明变量的作用域只能在循环内
在循环中i++和++i没有区别

int i = 1;
for(;i<=5;){
    System.out.println("用良心做教育");
    //i++;
    ++i;
}
System.out.println(i);

8.理解案例1

输出1-9的数字

for(int i = 1;i<=9;i++){
    System.out.println(i);
}

9.理解案例2

输出1~9数字中的奇数

//解决方案1
for(int i = 1;i<10;i+=2){
    System.out.println(i);
}
//解决方案2
for(int i = 1;i<10;i++){
    if(i%2!=0){
        System.out.println(i);
    }
}

10.理解案例3

输出9~1的数字

for(int i = 9;i>0;i--){
    System.out.println(i);
}

11.总结 - 理解案例

i可以从1开始也可以从0开始,更新变量可以递增也可以递减

12.案例1

循环录入5次int类型的数字,输出总和

Scanner scan = new Scanner(System.in);
int sum = 0;//总和
for(int i = 1;i<=5;i++){
    System.out.println("请输入第" + i + "个数字:");
    int num = scan.nextInt();
    sum += num;//累加
}
System.out.println("总和为:" + sum);

13.案例2

循环录入麻生希同学的5门课成绩,计算平均分

Scanner scan = new Scanner(System.in);
double sum = 0;//总成绩
for(int i = 1;i<=5;i++){
    System.out.println("请输入第" + i + "门成绩:");
    double score = scan.nextDouble();
    sum += score;//累加
}
System.out.println("平均分为:" + (sum/5));

14.案例3

循环录入5次int类型的数字,输出最大值

Scanner scan = new Scanner(System.in);
		
System.out.println("请输入第1个数字:");
int max = scan.nextInt();//假设第一个输入的数字为最大值

for(int i = 2;i<=5;i++){
    System.out.println("请输入第" + i + "个数字:");
    int num = scan.nextInt();
    if(max < num){
        max = num;
    }
}

System.out.println("最大值为:" + max);

最后

以上就是彩色饼干为你收集整理的零基础学javaDay04Day04的全部内容,希望文章能够帮你解决零基础学javaDay04Day04所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部