A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2017-3-4 16:44 编辑



济南中心】JavaEE基础班新课程day03:选择和循环



          大家学完前两天的课程什么感觉?是感觉收获了很多,还是感觉哪里没解释清楚?请留言评论给我哦。{:8_468:}

         大家对于编程有了基本的认识,变量,常量,数据类型,运算符,键盘录入等等知识点你是否清楚了呢?盖大楼可是要先打好地基的

每天的知识都要掌握。
          来检查一下吧!{:8_472:}
[Java] 纯文本查看 复制代码
           byte b1 = 3, b2 = 4,b;
            b=b1+b2;
            b=3+4;
这三行代码哪行会报错?

答案:
b=b1+b2;会报错
因为此运算为byte类型的运算,低于int类型的运算时会自动提升为int类型。
int类型的值赋值给byte会损失精度,需要强制类型转换。
b=(byte)b1+b2;
怎么样?是不是学会了呢?{:8_497:}

再说一下同学常见得问题:
有的同学软件遇到了问题,eclipse突然打不开了?如下图:
           这样是说创建java虚拟机失败,原因是你的内存不够用了,因为创建虚拟机需要分配给他内存空间。
         解决办法是打开你的eclipse安装位置,找到eclipse.ini文件,右键-编辑
         
          打开以后看到如下的一些文字:
        
          找到里面的256,1024这些数字把它改为128就可以啦,保存后再打开eclipse是不是ok了?{:8_492:}

          好,接下来我们进入第三天的学习,看看今天的主要学习目标吧!

         【学习目标】理解、了解、应用、记忆

     通过今天的学习,希望大家能够:(解释的时候说出二级目标的掌握程度)

           1.        【应用】能够独立使用选择流程语句完成指定操作
     a.  【理解】阐述if语句的的第一种第二种及第三种书写格式及执行流程
     b.  【应用】独立编写代码,使用if语句完成获取两个数较大值的练习
     c.  【应用】独立编写代码,使用if语句完成判断学生等级练习
     d.  【理解】阐述switch语句的的格式及执行流程
     e.  【应用】独立编写代码,使用switch语句完成根据数字输出对应星期的练习

           2.      【理解】能够独立使用循环控制语句完成指定操作
     a.        【理解】阐述使用for循环的基本格式及执行流程
     b.        【应用】独立编写代码,使用for循环完成获取1-5之间数据之和
     c.        【应用】独立编写代码,使用for循环完成获取1-100之间的偶数和
     d.        【应用】独立编写代码,使用for循环完成控制台打印100-999之间水仙花数,并获取水仙花个数练习
     e.        【理解】阐述while循环的基本格式及执行流程
     f.         【应用】独立编写代码,使用while循环完成1-100之间数据之和
     g.        【理解】阐述do…while循环的格式及执行流程
     h.        【理解】阐述for、while、do…while三种循环的区别

           3.        【应用】能够灵活使用控制循环语句
        a.        【理解】阐述break的作用及使用场景
                  【理解】阐述continue的作用及使用场景

1 选择流程控制语句
               1.         顺序结构概述是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的
[Java] 纯文本查看 复制代码
/*
 * 顺序结构:从上往下,依次执行
 */
public class OrderDemo {
        public static void main(String[] args) {
                System.out.println("开始");
                System.out.println("语句A");
                System.out.println("语句B");
                System.out.println("语句C");
                System.out.println("结束");
        }
}

               i.         If语句格式1及执行流程
if语句第一种格式:
if(关系表达式) {
                   语句体
       }
执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体

[Java] 纯文本查看 复制代码
public class IfDemo {
        public static void main(String[] args) {
                System.out.println("开始");
                // 定义两个变量
                int a = 10;
                int b = 20;

                if (a == b) {
                        System.out.println("a等于b");
                }

                int c = 10;
                if (a == c) {
                        System.out.println("a等于c");
                }

                System.out.println("结束");
        }
}

               i.         If语句格式2及执行流程
if语句第二种格式:
if(关系表达式) {
                   语句体1;
       }else {
                   语句体2;
       }
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
      如果是false就执行语句体2
[Java] 纯文本查看 复制代码
public class IfDemo2 {
        public static void main(String[] args) {
                System.out.println("开始");
                // 判断给定的数据是奇数还是偶数
                // 定义变量
                int a = 100;
                // 给a重新赋值
                a = 99;

                if (a % 2 == 0) {
                        System.out.println("a是偶数");
                } else {
                        System.out.println("a是奇数");
                }

                System.out.println("结束");
        }
}

               i.         If语句格式3及执行流程
if语句第三种格式:
if(关系表达式1) {
                   语句体1;
       }else if (关系表达式2) {
                   语句体2;
       }
    …
       else {
                   语句体n+1;
       }
执行流程
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false
如果没有任何关系表达式为true,就执行语句体n+1


[Java] 纯文本查看 复制代码
int x = 5;
int y = 0;
                if (x >= 3) {
                        y = 2 * x + 1;
                } else if (x >= -1 && x < 3) {
                        y = 2 * x;
                } else if (x <= -1) {
                        y = 2 * x - 1;
                }
                
                System.out.println("y的值是:"+y);

来练习一下吧
if语句实现判断学生等级:
键盘录入学生考试成绩,请根据成绩判断该学生属于哪个级别
* 90-100   优秀
* 80-90
* 70-80
* 60-70 及格
* 60以下       不及格
自己先思考再看答案吧!



答案:
[Java] 纯文本查看 复制代码
public static void main(String[] args) {
                //创建对象
                Scanner sc = new Scanner(System.in);
                
                //接收数据
                System.out.println("请输入学生的考试成绩:");
                int score = sc.nextInt();
if(score<0 || score>100){
                        System.out.println("你的成绩是错误的");
                }else if(score>=90 && score<=100){
                        System.out.println("你的成绩属于优秀");
                }else if(score>=80 && score<90){
                        System.out.println("你的成绩属于好");
                }else if(score>=70 && score<80){
                        System.out.println("你的成绩属于良");
                }else if(score>=60 && score<70){
                        System.out.println("你的成绩属于及格");
                }else {
                        System.out.println("你的成绩属于不及格");
                }
        }


  switch语句的格式及执行流程
switch表示这是switch语句
表达式的取值:byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是String
case后面跟的是要和表达式进行比较的值
语句体部分可以是一条或多条语句
break表示中断,结束的意思,可以结束switch语句
      default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
      执行顺序:
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

看这个代码:
[Java] 纯文本查看 复制代码
public class SwitchDemo {
        public static void main(String[] args) {
                //创建键盘录入对象
                Scanner sc = new Scanner(System.in);
                
                //接收数据
                System.out.println("请输入一个数字(1-7):");
                int weekday = sc.nextInt();
                
                //switch语句实现选择
                switch(weekday) {
                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;
                default:
                        System.out.println("你输入的数字有误");
                        break;
                }
        }
}


你能看懂这个代码的作用吗?如果你不确定的话可以运行一下试试哦~这里我就卖个关子,动动手吧!





2  循环流程控制语句
          接下来是循环了!循环?单曲循环,就是一遍又一遍啊,计算机对于简单的重复命令执行起来是非常快的,利用这点学会了循环我们可以利用计算机做很多费时的计算工作。来看看吧!


a.  for循环语句格式:

      
for(
初始化语句;判断条件语句;控制条件语句) {
      循环体语句;
}
如果我让你从0数到1万你需要几分钟?估计要数很久了,那交给计算机的话你猜需要多久?
你可以用for循环打印0到1万的数字,或者浪漫一点输出1万次 i love u{:8_503:}

怎么用代码实现?自己试试!
[Java] 纯文本查看 复制代码
for(int x=0; x<10000; x++) {
                        System.out.println("i love u");
                }



现在我们把for和if结合起来做个小练习:
输出3位数中的所有水仙花数,并统计总个数。
什么是水仙花数呢?
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。53= 1*1*1 + 5*5*5 + 3*3*3
这个题我就不给代码啦,自己试试吧!

b:  while循环    基本格式
   while(判断条件语句) {
         循环体语句;
   }

    扩展格式
   初始化语句;
   while(判断条件语句) {
         循环体语句;
         控制条件语句;
}

和刚才for有点相似,在一定程度上可以替换使用。现在让我们用while输出10次 小鲁哥哥你好棒棒吧!{:8_492:}

[Java] 纯文本查看 复制代码
while(x<=10) {
            System.out.println("小鲁哥哥你好棒棒!");
            x++;
}

哈哈,很棒,接下来还有个do…while和控制语句,学完就收工啦~加油~
基本格式
   do {
         循环体语句;
   }while((判断条件语句);
扩展格式
   初始化语句;
   do {
         循环体语句;
         控制条件语句;
} while((判断条件语句);


c.  三种循环的区别
虽然可以完成同样的功能,但是还是有小区别:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
for循环语句和while循环语句的小区别:
使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。



3  控制跳转语句

a)  控制跳转语句break
break的使用场景:
在选择结构switch语句中
在循环语句中
离开使用场景的存在是没有意义的
break的作用:
       跳出单层循环
[Java] 纯文本查看 复制代码
public class BreakDemo {
        public static void main(String[] args) {
                //break;
                
                for(int x=1; x<=10; x++) {
                        if(x == 3) {
                                break;
                        }
                        System.out.println("HelloWorld");
                }
        }
}



b)  控制跳转语句continue
在循环语句中
离开使用场景的存在是没有意义的
continue的作用:
单层循环对比break,然后总结两个的区别
break  退出当前循环
continue  退出本次循环继续下次循环
[Java] 纯文本查看 复制代码
public class ContinueDemo {
        public static void main(String[] args) {
                //continue;
                
                for(int x=1; x<=10; x++) {
                        if(x == 3) {
                                //break;
                                continue;
                        }
                        System.out.println("HelloWorld");
                }
        }
}




大家好好加油,有什么问题和意见就评论留言吧!互相加油鼓励也可以~

6 个回复

倒序浏览
谢谢分享!!!
回复 使用道具 举报
感谢老师分享!
回复 使用道具 举报
回复 使用道具 举报
感谢分享,老师辛苦了!
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
谢谢分享!
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马