Fork me on GitHub

Java复习第二天

Day04

1、switch语句的格式?针对格式的解释?以及注意事项?

 (1)格式:

     switch(表达式) {

          case 值1:

              语句体1;

              break;

          case 值2:

              语句体2;

              break;

          ...

          default:

              语句体n+1;

              break;

     }

(2)格式解释说明:

     switch:说明这是switch语句。

     表达式:可以是byte,short,int,char

          JDK5以后可以是枚举

          JDK7以后可以是字符串

     case:后面的值就是要和表达式进行比较的值

     break:表示程序到这里中断,跳出switch语句

     default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else。

(3)注意事项:

   A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的。

     B:default可以省略吗?

     可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。

     特殊情况:case就可以把值固定。A,B,C,D

     C:break可以省略吗?

          可以省略,但是结果可能不是我们想要的。

          会出现一个现象:case穿透。

          最终我们建议不要省略

     D:default一定要在最后吗?

          不是,可以在任意位置。但是建议在最后。

     E:switch语句的结束条件

          a:遇到break就结束了

          b:执行到末尾就结束了

------------------------------------------------------------------

2、看程序,分析下面程序的结果:

int x = 2,y=3;

switch(x)

{

     default:

          y++;

     case 3:

          y++;

          break;

     case 4:

          y++;

}

System.out.println("y="+y);

输出:y=5

------------------------------------------------------------------

3、根据输入的值,判断是星期几。(分别用if语句和switch语句实现)

     输入:1   输出:星期1

Switch 语句:

public class Test02 {

     public static void main(String[] args) {

           Scanner scanner = new Scanner(System.in);

           System.out.print("请输入数值:");

           int week=scanner.nextInt();

           switch(week)

           {

                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("数值错误!");

           }

     }

}

If语句:

public class Test03 {

     public static void main(String[] args) {

           Scanner scanner = new Scanner(System.in);

           System.out.print("请输入数值:");

           int week=scanner.nextInt();

           if(week==1){

                System.out.println("星期一");

           }else if(week==2){

                System.out.println("星期二");

           }else if(week==3){

                System.out.println("星期三");

           }else if(week==4){

                System.out.println("星期四");

           }else if(week==5){

                System.out.println("星期五");

           }else if(week==6){

                System.out.println("星期六");

           }else if(week==7){

                System.out.println("星期天");

           }else

                System.out.println("数值错误!");

     }

}

------------------------------------------------------------------

4、for循环的格式? 用for循环完成案例。

(1)for循环的格式

     A: for循环语句

          for(初始化语句;判断条件语句;控制条件语句){

              循环体语句;

          }

(2)注意事项

     a:判断条件语句无论简单还是复杂,结果是boolean类型

     b:循环体语句如果是一条,可以省略大括号,但是不建议

     c:有分号就没有左大括号,有左大括号就没有分号

求和

     //求1-100之和。

     int sum = 0;

     for(int x=1; x<=100; x++) {

          sum +=x;

     }

     System.out.println("1-100之和是:"+sum);

求偶数和

     //求出1-100之间偶数和

     int sum2 = 0;

     for(int x=1; x<=100; x++) {

           if(x%2 == 0) {

                sum2 += x;

           }

     }

     System.out.println("1-100偶数之和是:"+sum2);

  求奇数和

     //求出1-100之间奇数和

     int sum3 = 0;

     for(int x=1; x<=100; x++) {

           if(x%2 != 0) {

                sum3 += x;

           }

     }

     System.out.println("1-100奇数之和是:"+sum3);

打印水仙花数

public class Test06 {

     public static void main(String[] args) {

           //三位数告诉了我们范围,用for循环就可以搞定

           for(int x=100; x<1000; x++) {

                //获取每一个三位数的个,十,百的数据

                int ge = x%10;

                int shi = x/10%10;

                int bai = x/10/10%10;

                //按照要求进行判断

                if(x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)) {

                     //如果满足要求就计数。

                     System.out.println(x);

                }

           }

     }

}

统计水仙花数

public class Test05 {

     public static void main(String[] args) {

           //定义统计变量,初始化值是0

           int count = 0;

           //三位数告诉了我们范围,用for循环就可以搞定

           for(int x=100; x<1000; x++) {

                //获取每一个三位数的个,十,百的数据

                int ge = x%10;

                int shi = x/10%10;

                int bai = x/10/10%10;

                //按照要求进行判断

                if(x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)) {

                     //如果满足要求就计数。

                     count++;

                }

           }

           System.out.println("水仙花数共有"+count+"个");

     }

}

九九乘法表

public class Test07 {

     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");

                }   

           System.out.print("\n");

           }

     }

}

------------------------------------------------------------------

5、while循环的格式?要能看懂执行流程

(1) while循环的格式

A:while循环

          while(判断条件语句) {

               循环体语句;

          }

B:do...while循环

          do {

               循环体语句;

          }while(判断条件语句);

 (2)循环使用的注意事项(死循环)

     A:一定要注意修改控制条件,否则容易出现死循环。

     B:最简单的死循环格式

          a:while(true){...}

          b:for(;;){}

用while循环完成如下案例

求和

public class Test08 {

     public static void main(String[] args){

           int sum2 = 0;

           int y=1;

           while(y<=100) {

                sum2+=y;

                y++;

           }

           System.out.println("sum2:"+sum2);

     }

}

纸张折叠成珠穆朗玛峰高度的次数

public class Test09 {

     public static void main(String[] args) {

           int count = 0;

           //最高山峰是珠穆朗玛峰:8848m这是最终的厚度

           //我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度

           int end = 884800;

           int start = 1;

           while(start<end) {

                //只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++

                count++;

                //折叠一次有什么变化呢?就是厚度是以前的2倍。

                start *= 2;

                System.out.println("第"+count+"次厚度是"+start);

           }

           //输出统计变量。

           System.out.println("要叠"+count+"次");

     }

}

------------------------------------------------------------------

6、break,continue和return分别有什么用?

(1)break:中断的意思

     A:用在循环和switch语句中,离开此应用场景无意义。

     B:作用

          a:跳出单层循环

          b:跳出多层循环,需要标签语句的配合

(2)continue:继续

     A:用在循环中,离开此应用场景无意义。

     B:作用

          a:跳出单层循环的一次,可以继续下一次

(3)return:返回

     A:用于结束方法的,后面还会在继续讲解和使用。

     B:一旦遇到return,程序就不会在继续往后执行。

------------------------------------------------------------------

Day05

1、函数的概念?函数的格式?格式的解释说明

(1)概念:完成特定功能的代码块。

(2)格式:

     修饰符 返回值类型 方法名(参数类型 参数1,参数类型 参数2...) {

          方法体语句;

          return 返回值;

     }

(3)格式解释说明:

     修饰符:目前就用 public static。后面再详细讲解其他修饰符

     返回值类型:就是功能结果的数据类型

     方法名:就是起了一个名字,方便我们调用该方法。

     参数类型:就是参数的数据类型

     参数名:就是变量

     参数分类:

          实参:实际参与运算的数据

          形参:方法上定义的,用于接收实际参数的变量

     方法体语句:就是完成功能的代码块

     return:结束方法

     返回值:就是功能的结果,由return带给调用者。

------------------------------------------------------------------

2、函数的调用

     A:明确返回值类型的函数调用

     B:void类型的函数调用

------------------------------------------------------------------

3、什么是函数重载?

在同一个类中,方法名相同,参数列表不同的函数,与返回值无关。

------------------------------------------------------------------

4、数组的概念?有什么特点?

     (1)数组:存储同一种数据类型的多个元素的容器。

     (2)特点:每一个元素都有编号,从0开始,最大编号是长度-1。

              编号的专业叫法:索引

------------------------------------------------------------------

5、一维数组的定义格式?

     A:数据类型[] 数组名;

     B:数据类型 数组名[];

------------------------------------------------------------------

6、数组操作的两个小问题

     A:动态初始化

          只给长度,系统给出默认值

          举例:int[] arr = new int[3];

     B:静态初始化

          给出值,系统决定长度

          举例:int[] arr = new int[]{1,2,3};

          简化版:int[] arr = {1,2,3};

------------------------------------------------------------------

7、数组常见操作:

数组遍历(依次输出数组中的每一个元素)

     //方式1:

     public static void printArray(int[] arr) {

           for(int x=0; x<arr.length; x++) {

                System.out.println(arr[x]);

           }

     }

     //方式2:

     public static void printArray2(int[] arr) {

           System.out.print("[");

           for(int x=0; x<arr.length; x++) {

                if(x == arr.length-1) {

                     System.out.println(arr[x]+"]");

                }else {

                     System.out.println(arr[x]+", ");

                }

           }

     }

数组获取最值(获取数组中的最大值最小值)

     //最大值:

     public static int getMax(int[] arr) {

           int max = arr[0];

           for(int x=1; x<arr.length; x++) {

                if(arr[x] > max) {

                     max = arr[x];

                }

           }

           return max;

     }

     //最小值:

     public static int getMin(int[] arr) {

           int min = arr[0];

           for(int x=1; x<arr.length; x++) {

                if(arr[x] < min) {

                     min = arr[x];

                }

           }

           return min;

     }

数组元素逆序 (就是把元素对调)

     //方式1:

     public static void reverse(int[] arr) {

           for(int x=0; x<arr.length/2; x++) {

                int temp = arr[x];

                arr[x] = arr[arr.length-1-x];

                arr[arr.length-1-x] = temp;

           }

     }

     //方式2:

     public static void reverse2(int[] arr) {

           for(int start=0,end=arr.length-1; start<=end; start++,end--) {

                int temp = arr[start];

                arr[start] = arr[end];

                arr[end] = temp;

           }

     }

数组元素查找(查找指定元素第一次在数组中出现的索引)

     //方式1:

     public static int getIndex(int[] arr,int value) {

           for(int x=0; x<arr.length; x++) {

                if(arr[x] == value) {

                     return x;

                }

           }

           return -1;

     }

     //方式2:

     public static int getIndex2(int[] arr,int value) {

           int index = -1;

           for(int x=0; x<arr.length; x++) {

                if(arr[x] == value) {

                     index = x;

                     break;

                }

           }

           return index;

     }

posted @ 2015-07-28 17:08  何海洋  阅读(488)  评论(0编辑  收藏  举报