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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小爷邱烙 高级黑马   /  2014-11-27 19:34  /  3519 人查看  /  79 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

整理下代码,用于后面翻看
  1. //if练习:把数字转成星期
  2.         int num = 2;
  3.         if(num==1)
  4.                 System.out.println("Monday");
  5.         else if(num==2)//此处如果用if,则是多条语句,多次操作,效率低
  6.                 System.out.println("Tuesday");
  7.         //...
  8.         else
  9.                 System.out.println("error");
复制代码



评分

参与人数 1技术分 +2 收起 理由
sk0806 + 2 赞一个!

查看全部评分

79 个回复

倒序浏览
  1.         int month = 4;
  2.         if(month>12 || month<1)//先验证数据的正确性
  3.                 System.out.println("error");
  4.         else if(month>=3 && month<=5)
  5.                 System.out.println("春季");
  6.         //...
  7.         else
  8.                 System.out.println("冬季");       
复制代码


回复 使用道具 举报
  1. switch语句
  2.         switch(表达式){
  3.         case 取值1:
  4.                 执行语句;
  5.                 break;
  6.         ...
  7.         default:
  8.                 执行语句;
  9.                 break;//最后一个为default时,break可以省略不写
  10.         }
复制代码


回复 使用道具 举报
  1. //switch练习:数字转季节
  2.         int month = 4;
  3.         switch(month){
  4.                 case 3: //小技巧,当case不带执行语句且不break时,继续执行下一个case,适合区间条件
  5.                 case 4:
  6.                 case 5:
  7.                         System.out.println("春季");
  8.                         break;
  9.                 //...
  10.                 default:
  11.                         System.out.println("error");
  12.         }
复制代码


回复 使用道具 举报
  1.         循环练习:获取1-10的和(重复执行加,使用累加思想)累加思想可用于加、减以及字符串操作
  2.         int sum = 0;//和始终变化,定义变量存储
  3.         int x = 1;//被加数也在变化,定义变量存储
  4.         while(x<=10){
  5.                 sum = sum + x;
  6.                 x++;
  7.         }
复制代码


回复 使用道具 举报
  1.         //由于x相加后无意义,用for更合适
  2.         int sum = 0;
  3.         for(int x=0;x<=10;x++){
  4.                 sum +=x;
  5.         }
复制代码


回复 使用道具 举报
  1.         循环练习:计算1-100之间7的倍数的个数,并打印
  2.         int count = 0;
  3.         for(int x=0;x<=100;x++){
  4.                 if(x%7==0)
  5.                         count++;
  6.                 System.out.println("count="+count);
  7.         }
复制代码


回复 使用道具 举报
学习啦!!!!
回复 使用道具 举报
  1.                 循环嵌套练习:打印倒三角形
  2. *****        int z = 5;
  3. ****        for(int x=0;x<5;x++){//控制固定的行数
  4. ***                        for(int y=0;y<z;y++){//控制递减的列数
  5. **                                System.out.print("*");
  6. *                        }
  7.                         System.out.println();//换行
  8.                         z--;//列数递减
  9.                 }
  10.                 //另一种形式
  11.                 int z = 0;
  12.                 for(int x=0;x<5;x++){
  13.                         for(int y=z;y<5;y++){
  14.                                 System.out.print("*");
  15.                         }
  16.                         System.out.println();
  17.                         z++;
  18.                 }
  19.                 //优化:z的变化规律与x相同
  20.                 for(int x=0;x<5;x++){
  21.                         for(int y=x;y<5;y++){
  22.                                 System.out.print("*");
  23.                         }
  24.                         System.out.println();
  25.                 }
复制代码


回复 使用道具 举报
  1.         循环练习:打印正向三角形
  2.         *                for(int x=0;x<5;x++){
  3.         **                        for(int y=0;y<=x;y++){
  4.         ***                                System.out.print("*");
  5.         ****                }
  6.         *****                        System.out.println();
  7.                         }
复制代码


回复 使用道具 举报
  1.                 循环练习:打印数字三角形
  2. 1                for(int x=1;x<=5;x++){
  3. 12                        for(int y=1;y<=x;y++){
  4. 123                                System.out.print(y);
  5. 1234                }
  6. 12345                System.out.println();
  7.                 }
复制代码


回复 使用道具 举报
  1.         循环练习:打印九九乘法表
  2.         for(int x=1;x<=3;x++){
  3.                 for(int y=1;y<=x;y++){
  4.                         System.out.print(y+"*"+x+"="+y*x+"\t");
  5.                 }
  6.                 System.out.println();
  7.         }
复制代码


回复 使用道具 举报
  1.         嵌套循环练习:打印等边三角形
  2.         *                   ----*         
  3.    * *                  ---**
  4.   * * *      ----->     --***
  5. * * * *                -****
  6. * * * * *               *****
  7. 思路:先转成两个三角形组成的正方形,用空格替换-,用*加空格替换*
  8. for(int x=0;x<5;x++){//控制列数
  9.         for(int y=x+1;y<5;y++){
  10.                 System.out.print(" ");
  11.         }
  12.         for(int z=0;z<=x;z++){
  13.                 System.out.print("* ");
  14.         }
  15.         System.out.println();
  16. }
复制代码


回复 使用道具 举报
  1. 数组练习:取最值(使用遍历思想)
  2. int x = arr[0];
  3. for(int i=0;i<arr.length;i++){
  4.         if(x<arr[i])
  5.                 x = arr[i];
  6. }
  7. System.out.println(x);
复制代码


回复 使用道具 举报
  1. 使用角标技巧取最值
  2. int x = 0;//x为角标
  3. for(int i=1;i<arr.length;i++){
  4.         if(arr[x]<arr[i])
  5.                 x = i;
  6. }
  7. System.out.println(arr[x]);
复制代码


回复 使用道具 举报
  1. 数组排序(选择排序):先确定最小值,放在0角标,再一次确定各个角标的值
  2. for(int i=0;i<arr.length;i++){
  3.         for(int j=i+1;j<arr.length;j++){
  4.                 if(arr[i]>arr[j]){
  5.                         int temp = arr[i];
  6.                         arr[i] = arr[j];
  7.                         arr[j] = temp;
  8.                 }
  9.         }
  10. }//由于数组是引用数据类型,交换完位置就是在堆内存中排好序了,所以不用返回值
复制代码


回复 使用道具 举报
  1. 数组排序(冒泡排序):相邻的两个元素比较,若前面的大于后面的,互换位置,先确定最大值的位置
  2. for(int i=0;i<arr.length-1;i++){//外层控制圈数,最后一个元素无需比较
  3.         for(int j=0;j<arr.length-i-1;j++){//内层长度由外层控制,已经比较过的从长度中减去
  4.                 if(arr[j]>arr[j+1]){
  5.                         int temp = arr[j];
  6.                         arr[j] = arr[j+1];
  7.                         arr[j+1] = temp;
  8.                 }
  9.         }
  10. }
复制代码


回复 使用道具 举报
  1. 排序细节:抽取交换位置功能
  2. public static void swap(int[] arr,int i,int j){
  3.         int temp = arr[i];
  4.         arr[i] = arr[j];
  5.         arr[j] = temp;
  6. }
复制代码


回复 使用道具 举报
  1. int min = 0;
  2. int max = arr.length-1;
  3. int mid = (min+max)/2;
  4. while(arr[mid]!=key){
  5.         if(key>arr[mid]){
  6.                 min = mid+1;
  7.         }else if(key<arr[mid]){
  8.                 max = mid-1;
  9.         }
  10.         if(min>max){
  11.                 return -1;
  12.         }
  13.         mid = (max+min)/2;
  14. }
  15. return mid;
复制代码


回复 使用道具 举报
  1. //另一种形式
  2. int min = 0;
  3. int max = arr.length-1;
  4. int mid;
  5. while(min<=max){
  6.         mid = (min+max)>>1;
  7.         if(key>arr[mid]){
  8.                 min = mid+1;
  9.         }else if(key<arr[mid]){
  10.                 max = mid-1;
  11.         }else{
  12.                 return mid;
  13.         }
  14. }
  15. return -1;
复制代码


回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马