热门搜索 :
考研考公
您的当前位置:首页正文

Java的选择语句、循环语句及常用方法类型总结 13天学Java

来源:东饰资讯网

控制语句的学习,前一天我们主要学习了Java的“单词”,今天我们来学习语法。编程语言的语法就两类控制语句:选择语句,循环语句。这里面有一个注意的点,在方法体里,程序运行的顺序是从上到下依次执行。

一、选择语句,顾名思义,就是选择关系,如果出现第一种情况,就进行A操作;出现第二种情况,就进行B操作,以此类推。以下有常用的四种选择语句格式(语法):

if(boolean){   /执行语句,用分号隔开      }

if(boolean){        }  else{                }

if(boolean){    }  else if(boolean){     } else if(boolean){       }.......else {             }  项目中比较常用,多条件复杂语句;

switch(){case 1:    ;[break];case 2:    ;[break];...........;default:      ;}  因为case后面是值或者字符串,switch括号里面的内容要和case后面的值比较,所以一般这种语句在后面项目中,和枚举类一起用的比较多。注意里面的break和default是可选,但是一般情况下,我们都会使用到break,这样满足一个条件就会跳出switch语句,否则会一直执行完。

下面根据一道题,可以把这几个语句都练习学习到:

向控制台输入一个数字,这个数字是某人一次考试的成绩,如果这个成绩在0分到60分之间,判定为不及格,超过60分,即判定为及格,超过70分则为中等,超过80分则为良好,超过90分则为优秀,满分是100分。分数有小数。

1、先用if(boolean){}  else if(boolean){} else if(boolean){}.......else {} 解题。

代码如下:

import java.util.Scanner;//导入scanner类,因为向控制台输入需要用到

public class TestSwitch {

        public static void main(String[] args) {

                   Scanner scanner=new Scanner(System.in);//Scanner这个类就是来接收数据,后面对类的讲解中再详细介绍,包括io流中的System,现在就记住

                    System.out.println("请输入你的分数:");

                    double score=scanner.nextDouble();//Scanner这个类就是来接收数据,后面对类的讲解中再详细介绍,包括io流中的System,现在就记住

                      // 接收到输入的信息之后,接下来就是使用if语句进行判断

                      if(score>0&&score<60) {

                                     System.out.println("不及格");

                      }else if(score>=60&&score<70) {

                                     System.out.println("及格");

                     }else if(score>=70&&score<80) {

                                    System.out.println("中等");

                     }else if(score>=80&&score<90) {

                                   System.out.println("良好");

                     }else if(score>=90&&score<=100) {

                                    System.out.println("优秀");

                    }else {

                                  System.out.println("你输入的分数不合法!");

                    }

         }

}

结果如下:

请输入你的分数:

20.9876

不及格

再试一次:

请输入你的分数:

71

中等

再试一次:

请输入你的分数:

110.89

你输入的分数不合法

2、下面再采用switch语句和if  else语句组合再解一次题。

代码如下:

import java.util.Scanner;

public class TestSwitch {

            public static void main(String[] args) {

                              Scanner scanner=new Scanner(System.in);//Scanner这个类就是来接收数据,后面对类的讲解中再详细介绍,包括io流中的System,现在就记住

                             System.out.println("请输入你的分数:");

                             double score=scanner.nextDouble();//Scanner这个类就是来接收数据,后面对类的讲解中再详细介绍,包括io流中的System,现在就记住

                             // 接收到输入的信息之后,接下来就是使用switch语句进行判断

                             //先要判断分数是不是在0-100分之内,采用if else语句

                             if(score<0||score>100){

                             System.out.println("你输入的分数不合法");

                             }else {

                                            switch((int)(score/10)) {  //这里有个很重要的关键点,是本题采用switch的核心关键点,将分数除以10,再取整数,和case值作比较。

                                            case 9:

                                            System.out.println("优秀");

                                           break;

                                            case 8:

                                            System.out.println("良好");

                                            break;

                                            case 7:

                                            System.out.println("中等");

                                            break;

                                            case 6:

                                           System.out.println("及格");

                                           break;

                                          default:

                                          System.out.println("不及格");

                                          }

                            }

           }

}

只要将上面一道题详细理解,并用这两种方式完成编程,基本就掌握了选择语句的使用。

二、循环语句

循环语句顾名思义就是满足某个条件,就一直执行一段代码块。循环语句有以下几种形式:

while(boolean){    / 执行语句      }  即满足小括号的条件,boolen值为true,就执行大括号里面的代码;

do{   }while(boolean)和while没有本质区别,只不过先执行一次大括号里面的代码,然后判断小括号的条件是否为真,如果为真继续执行;基本很少使用;

for(   ;   ;   ;){         },最常用的循环语句,基本后面的项目中都使用的是这个语句。

下面用一道题看一下while和for语句的基本使用:

计算1+2+3+4+.......+100的和。

重点我们来关注一下for和while代码块的语句执行,做一个对比

while(i<=100){

      sum+=i;

       i++;

}执行过程是先判断i是不是小于等于100,满足条件,i+sum赋值给sum,然后i自加1,判断i是否满足条件,一直到i>100,结束。

for(int i=0;i<=100;i++) {

      sum+=i;

}这里面的执行过程一样,但是记住小括号里面的内容不是一起按顺序执行的,int i=0只执行一次,i++是等到代码块执行完才开始执行的,切记。

那么for循环实在是在后面的项目中太常用到了,比如页面的图片排列,就是一个典型的for循环嵌套,所以我们再给一道题加深一下,这个也是for循环的典型案例,即打印九九乘法表。

代码:

public class TestForFor {

            public static void main(String[] args) {

                           for(int i=1;i<=9;i++) {

                                        for(int j=1;j<=i;j++) {

                                                    System.out.print(i+"*"+j+"="+i*j+"\t");//其中“\t”表示等式中间的空格

                                        }

                                     System.out.println();//表示换行

                         }

           }

}

三、方法

除了一些特殊的方法外,方法大部分情况下,都是由局部变量和上面学到的选择语句和循环语句构成的。

1、方法的构成:以之前背过的一句代码主方法为例:

               public     static            void              main   (String[] args)  {  

          //         修饰符              返回值类型       方法名          形式参数              方法体                          

                  //局部变量和控制语句              

              }

2、方法的使用

      当方法返回值类型是void的时候,方法返回被当做一条语句,当方法返回值类型是其他的时候,返回的通常是一个值,这里面就会用到return。其中形参和实参值传递的时候,传递的是值得拷贝,那么引用数据类型传递的是对象地址的拷贝,这个后面会常用。通常方法调用都是这个格式:

                                [引用名或者类名].方法名();

3、常用方法类型

我们在进行面向对象编程的时候,主要就是使用各种已经写好的方法,以及怎么使用他们,所以具体的例子具体去分析。但是这里面有几类特殊的方法,可以在这里提前总结一下,后面用到的时候我们再回来做一个回顾:

a、成员方法:也叫实例方法,没有修饰符static。

b、静态方法:也叫类方法,有修饰符static。不能被重写。

c、方法重载:一个类的两个方法拥有相同的名字,但是有不同的参数列表。注意,方法的重载一定是在一个类中发生的,方法名字相同,而参数不同(包括了形参类型不同,形参个数不同和形参顺序不同),访问修饰符、返回类型可以相同也可以不同。最常用到的就是构造器(构造方法)的重载,因为我们创建对象的方式可能多种多样。方法的重载是一个类多态的表现。

d、方法重写:重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。类的继承最重要的特征,一般是子类对父类的方法的重写。子类父类多态的表现。一般情况是子类根据自己的特殊需要重新实现父类的方法。注意,方法的重写一定是父类与子类之间的,方法名字和参数列表必须相同,返回类型可以相同也可以不同(必须是子类型,多数情况直接认定为不可修改),访问修饰符子类必须比父类高或者相同。

e、构造方法:创建对象并对对象进行初始化,new 构造方法就是创建对象的语句。构造方法也叫构造器,他的名字和类的名字相同,没有返回值类型(其返回值类型是本类),访问控制修饰符和类的一样,不能再方法体里面使用return返回某个值,可以单独使用return。如果不写,会有一个默认构造方法,是来给类的实例对象赋初值的,因此我们会把赋初值相关的操作都写到构造方法里面。构造方法重载也很重要,比如有一个没有参数的构造器,还需要有参构造器。注意构造方法不能用static修饰。如果同一个类中,构造方法调用构造方法,可以用this直接指代构造方法。

f、getter setter方法:public修饰的get{}和set{}方法,和对象的封装的概念息息相关,主要解决封装问题。是外部类访问私有成员变量的入口。

g、抽象方法:抽象类里面使用的,abstract修饰的方法,不能有方法体,无法被实例化,方法名后面直接跟一个分号,而不是大括号。如果一个类有抽象方法,这个类必定是抽象类。主要和继承概念有关。

h、final修饰的方法:可以被重载,不能被重写

在这个阶段一定要能区分这些方法的含义,因为后面类和对象中调用方法的时候,不同方法调用方式都不一样。比如实例方法和静态方法的对比:

概括来说,就是静态变量和静态方法是随类产生的,都需要通过类来调用,因此可以通过类名.方法名直接调用,在同一个类里面,类名可以省略;成员变量和成员方法,是随对象产生的,需要通过引用来调用,因此可以通过引用名.方法名调用,在同一个类里面,引用名可以用this代替。

再对比方法重写和方法重载的区别:

其他方法的使用在后面的内容中都会讲到,这里要有一个整体的概念。

至此,我们就算是学完了编程的基础,注意是编程的继承,基本任何编程语言都要学习上面的内容。接下来才算是真正进入到Java的领域。不得不说的是,学完上面的内容,基本上所有的程序我们都能写了,但是为了效率,写的效率,运行的效率,实际工作中肯定是不能这么干的。

Top