java部分基础代码运用

// float要加f false     类型不同
float num1 = 0.01f;
double num2=0.01;
System.out.println(num1==num2);
false
//处理不到   double也相同
float  num1 = 1.515151554f;
float  num2 = 1.515151555f;
System.out.println(num1==num2);
true
Long startTime = System.currentTimeMillis();  
// 放在业务代码的最后面统计总耗时
Long endTime = System.currentTimeMillis();  Long elapsedTime = (endTime - startTime) / 1000;         System.out.println("该段总共耗时:" + elapsedTime + "s");
char ch='中';int num=ch;System.out.println(num);
20013
char ch='a';int num=ch;System.out.println(num);
97   
往后以此类推
 char ch='A';
 int num=ch;
 System.out.println(num);
 for (int i=65; i<=90; i++){   
    System.out.print((char)i+" ");
     }
 System.out.println();
 for (int i=97; i<=125; i++){    
   System.out.print((char)i+" ");
 }
​
//结果:
65
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
a b c d e f g h i j k l m n o p q r s t u v w x y z 
​
//没有第三方的换值   面试题
int a=5;
int b=6;
System.out.println(a+b-a);
System.out.println(a+b-b);
​
System.out.println(a*b/a);
System.out.println(a*b/b);
//个位数 十位数  百位数  千位数
Scanner input=new Scanner(System.in);
System.out.println("数字:");
int num=input.nextInt();
int ge=num%10; //个位数
int shi=num/10%10;
int bai=num/100%10;
int qian=num/1000;
System.out.println(ge+"\t"+shi+"\t"+bai+"\t"+qian);

int num1=020;  
//0是8进制
System.out.println(num1);
int num2=0b1111;  
//0b是2进制
System.out.println(num2);
int num3=0x2b; 
//代表16进制
System.out.println(num3);

&& 短路语 前面为假则后不执行 & 逻辑语 都执行 || 一个为真就可以执行 | 相同

选择结构 switch 多联开关 (等值条件判断)

switch(字段) {       //字段中的类型  int short   byte  char  枚举  String 这几种
​
 case 值1: 语句体1;
​
 break;
​
 case 值2: 语句体2;
​
 break;
 ... 
 default: 语句体n+1; 
​
break; 
​
} 

2.switch和多重if选择结构区别:

相同:

都是用来处理多分支条件的判断

不同 :

switch: 只能处理等值条件判断的情况

多重if:特别适合某个变量处于某个连续区间时的情况

3.Scanner hasNextInt()判断用户输出的是否时合法的数字 (延展)

4.byte short char 三种类型的变量做运算时,结果为int类型

三者不会相互转换,在计算时首先转换成int类型。

int val=12345;
int r_right;
System.out.println("反转后的整数是:");
while (val!=0){  
    r_right=val%10;   
    System.out.println(r_right);  
    val=val/10;
}

数组

//定义一个数组,用控制输入语句输入一个数字,判断是否存在于定义的数组中
int [] num={8,4,2,1,23,344,12}; //定义数组数量
        Scanner input=new Scanner(System.in);
        System.out.println("请输入一个数字:");
        int num1=input.nextInt();
        boolean isHave=false;  //默认值没有此数
        for (int i = 0; i <num.length; i++) {
            //判断输入的数字是否存在于定义的数组中
            if (num1==num[i]){
                isHave=true;
                break;
                }
            }
        if (isHave){
            System.out.println("存在");
        }
        else {
            System.out.println("不存在");
        }
    }
​
​
//判断最大值  (有漏洞)   //nums中都是负数的话最大值为0
  int[] nums = {8, 25, 32, 10, 40};
        int max = 0;
        for (int i = 0; i < nums.length; i++) {
            if (max < nums[i]) {
                max = nums[i];
            }
        }
        System.out.println("最大值是:"+max);
//修改后 
int[] nums = {8, 25, 32, 10, 40};
        int max =nums[0];
        int min=nums[0];
        int sum=0;
        for (int i = 0; i < nums.length; i++) {
            if (max < nums[i]) {
                max = nums[i];
            }
            if (min>nums[i]){
                min=nums[i];
            }
            sum=sum+nums[i];
        }
        System.out.println("最大值是:"+max);
        System.out.println("最小值是:"+min);
        System.out.println("总和:"+sum); 
       Arrays.sort(nums);  // 排序
        //遍历 
        for (int temp:nums) {
            System.out.println(temp+"\t");
        }
​
    //排序
     Arrays.sort(nums);  // 排序
    //遍历
     for (int temp:nums) {
       System.out.println(temp+"\t");
    }
/**
*给数组插入一个数字,输出、排序、输出插入的位置        面试题类似题
*/
​
​
//定义数组里的数字   
int nums[]={70,60,50,40,30,20,10};  //必须降序排序  
​
//数组复制,方便接受新数据后的数组   
int []newNums=new int[nums.length+1];  
for (int i = 0; i <nums.length ; i++) {     
    newNums[i]=nums[i];    
}   
//数组复制方法二
int []newNums= Arrays.copyOf(nums,nums.length+1);
​
​
//接受数据  
Scanner input=new Scanner(System.in);   
System.out.println("请输入新增成绩:");   
int num1=input.nextInt();   
//新数据插入的位置(下标)   
int  index=newNums.length-1;   
for (int i = 0; i <newNums.length ; i++) {   
    if (num1>=nums[i]){        
        index=i;       
        break;       
    }   
}    
System.out.println(); 
System.out.println("插入成绩的下标是:"+index);   
//当前位置后面的数据全部右移   
for (int i = newNums.length-1; i>index; i--) {  // (倒着来)     
    newNums[i]=newNums[i-1];  
    //相邻的两位相移动    
}    
//把新数据插入到指定位置  
newNums[index]=num1;   
System.out.println("插入后数组的数据");  
for (int temp:newNums) {     
    System.out.print(temp+"\t");    
}

二维数组

Arrays类提供排序,查询方法

equles 比较两个数组是否相等. sort升序排序。 tostrng 转为字符串。 void fill (array,val)将数组中的array类型改为val。 binarySearch(array,val)

//数组的复制
int []nums={100,90,80,70,60};
int[] newNums= Arrays.copyOf(nums,nums.length+2);    //想加几个长度就在length后加几
System.out.println("新数组的数据:");
for (int i = 0; i <newNums.length; i++) {
    System.out.print(newNums[i]+"\t");
}
System.out.println();  //换行
//两个数组是否相同
System.out.println("判断两个数组是否相同:");
if(Arrays.equals(nums,newNums))
    System.out.println("数组相同");
}else {
    System.out.println("数组不相同!!");
}
    String arr=Arrays.toString(nums);  //转换字符串
        System.out.println("输入字符串:"+arr);
        Arrays.sort(nums);//升序排序
        System.out.println(Arrays.toString(nums));
        int index=Arrays.binarySearch(nums,70);  //a:要搜索的数组   key:要搜索的值
        System.out.println("下标"+index);
​

冒泡排序 相邻两两比较 小靠前 外层 n-1 内层n-1-i

​
     int nums[] = {20, 18, 16, 14, 12};
​
        //冒泡排序
​
        // 外层比较几轮
        for (int i = 0; i < nums.length - 1; i++) {
            for (int j = 0; j <= nums.length - 1; j++) {
                System.out.println(nums);
            }
            for (int j = 0; j <nums.length -1- i; j++) {
            if (nums[j]>nums[j+1]){
                int temp=nums[j];
                nums[j]=nums[j+1];
                nums[j+1]=temp;
                }
            }
        }
        System.out.print("排序后的数组:"+ Arrays.toString(nums));

 //控制语句输入数组的成绩,求平均分
Scanner input=new Scanner(System.in);
int score[]=new int[5];
double  sum=0;
for (int i = 0; i < score.length; i++) {
    System.out.println("输入第"+(i+1)+"位成员的成绩:");
    score[i]=input.nextInt();
        sum=sum+ score[i];
    }
    System.out.println("平均分:"+(sum/5));
}

多维数组(7.10)

二维数组的长度3行5列

int [ ] [ ]score=new int [5] [50]; //最标准的

int [ ] [ ]score=new int [5] [ ]; int [ ] [ ]score=new int [ ] [ ]; //错误的方法 语法上java支持多维数组

int [ ] [ ]score=new int [] [ ]{{ 90,85,61,20,30},{76,36,20},{87}}; int [ ] [ ]score={{ 90,85,61,20,30},{76,36,20},{87}};

Scanner input=new Scanner(System.in);int [] []score=new int[3][5];   //三个班  每个班5个成绩
int sum=0;
for (int i = 0; i <score.length ; i++) {  
    sum=0;    
    System.out.println("输入第"+(i+1)+"个班级的成绩");  
    for (int j = 0; j <score[i].length; j++) {   
        System.out.println("输入第"+(j+1)+"个同学的成绩");   
        score[i][j]=input.nextInt();   
        sum += score[i][j];   
    }   
    System.out.println("第"+(i+1)+"班级的成绩:"+sum);
}   
System.out.println("输出所有班级的成绩:"); 
for (int i = 0; i <score.length ; i++) {    
    for (int j = 0; j < score[i].length; j++) {      
        System.out.println("请输入第"+(j+1)+"学生的成绩");     
        System.out.println(score[i][j]+"\t");      
    }   
    System.out.println();
}
​
//第二种
 Scanner input=new Scanner(System.in);
        int [] []score=new int[3][5];   //三个班  每个班5个成绩
        int total[]=new int[3];   //存储成绩
        for (int i = 0; i <score.length ; i++) {
            sum=0;
            System.out.println("输入第"+(i+1)+"个班级的成绩");
            for (int j = 0; j <score[i].length; j++) {
                System.out.print("输入第"+(j+1)+"个同学的成绩");
                score[i][j]=input.nextInt();
                sum += score[i][j];
            }
            total[i]=sum;
        }
            System.out.println("*******成绩统计成绩*******    :");
            for (int i = 0; i <score.length ; i++) {
                System.out.println("第"+(i+1)+"班的成绩:"+total[i]);
        }
​
//1. 打印一个五行的平行四边形.
for (int i = 1; i <5; i++) {
    for (int j = 1; j <5-i ; j++) {
        System.out.print(" ");
     }
    for (int j = 1; j <6 ; j++) {
        System.out.print("*");
            }
           System.out.println();
        }
    }
​
//1. 求1+1/2+2/3+3/5+5/8.....十项之和.(提示:找规律,后一项的分子等于前一项的分母,后一项分母等于前一项分子和分母之和)
int a[] = new int[10]; 
int b[] = new int[10];  
a[0]=1; a[1]=1; b[0]=1; b[1]=2;  
double sum = 0;   
for (int i=0; i<10; i++){     
    if(i>1){      
        a[i]=a[i-1]+a[i-2];    
        b[i]=b[i-1]+b[i-2];     
    }      
    sum+= (double)a[i]/(double)b[i]; 
}   
System.out.println("sum="+sum);
}
​
//1. 打印斐波那契序列:  1 1 2 3 5 8 13 ........打印30项,每一行打印6项.
​
int[] a = new int[30];
a[0] = 1;
a[1] = 1;
for (int i = 2; i < a.length; i++) {
    a[i] = a[i - 1] + a[i - 2];
}
for (int temp : a){
    if (temp % 8 == 0) {
        System.out.println();
    }
    System.out.print(temp + "\t");
   }
​
//使用递归 斐波那契序列求n 
public static void main(String[] args) {
        long num=fn1(20);
        System.out.println("第20项:"+num);
    }
    public static  int fn1(int n){
        if (n==1|n==2){
            return 1;
        }else {
            return  fn1(n-1)+fn1(n-2);
        }
    }
​
 //不使用递归
    public static void main(String[] args) {
        int num1=1;
        int num2=1;
        int sum=0;
        for (int i = 3; i <=10 ; i++) {
        sum=num1+num2;
        num1=num2;
        num2=  sum;
        }
        System.out.println(sum);
    }
    public static  int fn1(int n){
        if (n==1|n==2){
            return 1;
        }else {
            return  fn1(n-1)+fn1(n-2);
        }
    }
​
//杨wei三角
 public static void main(String[] args) {
        int [] []arr=new int[6][6];
        for (int i = 0; i <arr.length ; i++) {
            for (int j = 0; j <=i ; j++) {
               //每一行的第一列和最后一列都等于1;其余的数字等于它肩上的两数之和
               if (j==i||j==0){
                   arr[i][j]=1;
               }else {
                   arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
               }
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
结果:
1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 
1 5 10 10 5 1 
​

递归(调用自己就是递归)

结构包括: 递归头:什么时候停止调用自身方法,没有头,将会陷入死循环 递归体:什么时候需要调用自身方法

 //10的阶层
long num=1;
for (int i = 1; i <=10; i++) {   
    num=num*i;
}
System.out.println(num);
​
​
​
//
 Scanner input = new Scanner(System.in);
        System.out.println("输入一个数字:");
        int num1=fn1(input.nextInt());
        System.out.println(num1);
    }
​
    public static int fn1(int num1) {
        if (num1 <= 10) {
            return num1;
        } else {
       return fn1(num1/10)+num1%10;
        }
    }

二重循环(7.7)

打印图形(正反直角三角形、正反等腰三角形、菱形和空心菱形)

空心的使用if()来做

//倒直角三角形 
//外部循环是控制行数的
        for (int i = 0; i <=5; i++) {      
            for (int j = 0; j < (5-i); j++) {       
                System.out.print("*");       
            }
            System.out.println();  
        }   
​
        
         //正直角三角形
       
            for (int i = 1; i <=5; i++) {
            for (int j = 1; j <=i ; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
​
    
         // 1 3 5 7
        for (int i = 1; i <=5 ; i++) {
            for (int j = 1; j <=2*i-1 ; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
 
     //等腰三角形
        for (int i = 1; i <=5; i++) {
            for (int j = 1; j <=15-i; j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <=2*i-1 ; j++) {
                System.out.print("*");
            }
            System.out.println("");
        }   
    //倒等腰三角形
        for (int i = 1; i <=5; i++) {
            for (int j = 1; j <i ; j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <=2*(5-i)+1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    //倒等腰三角形  2
        for (int i = 5; i >=1; i--) {
            for (int j = 1; j <=5-i; j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <=2*i-1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
​
    //菱形
      for (int i = 1; i <=5; i++) {
             for (int j = 1; j <=5-i; j++) {
                 System.out.print(" ");
             }
             for (int j = 1; j <=2*i-1 ; j++) {
                 System.out.print("*");
             }
             System.out.println("");
         } for (int i = 1; i <=5; i++) {
            for (int j = 1; j <i ; j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <=2*(5-i)+1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
   //菱形 2 加if判断  空心
​
​
    //空心菱形  进阶
        for (int i = -4; i <=4 ; i++) {
            for (int j = 1; j <=Math.abs(i) ; j++) {
                System.out.print(" ");
            }
            for (int k = 1; k <=8-(Math.abs(i)*2-1) ; k++) {
                if (k==1||k==8-(Math.abs(i)*2-1)){
                    System.out.print("*");
                }else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    
​
​
//九九乘法表    
     for (int i = 1; i <=9 ; i++) {
        for (int j = 1; j <=i ; j++) {
           System.out.print(i+"*"+j+"="+(i*j)+"\t");
        }
           System.out.println();
     }
 
    //打印圆形
        int r = 8; //9行
        for (int y = 0; y <= 2 * r; y +=2) {//y的步长为2,改变y的步长可以将圆形变成椭圆
            int x = (int)Math.round(r - Math.sqrt(2*r*y-y*y)); //Math.sqrt(r * r-(r-y) *(r-y))转化得
            int len = 2 * (r - x);  //对称的两*之间的距离
            //i行j列
            for (int i = 0; i <= x; i++) {  //距离控制台左边的距离
                System.out.print(" ");
            }
            System.out.print("*");
​
            for (int j = 0; j <= len; j++) {
                System.out.print(" ");
            }
​
            System.out.println("*");
        }
​
        // 打印x
        Scanner scanner = new Scanner(System.in);
​
        while (scanner.hasNextInt()){
            int a = scanner.nextInt();
            for (int i = 0; i < a; i++) {               //行
                for (int j = 0; j < a; j++) {           //列
                    if (i == j || i + j == a - 1) {
                        System.out.print(" *");
​
                    }else {
                        System.out.print("  ");
                    }
                }
                System.out.println();
            }
        }

在二重循环中使用continue

//第几班级 4人数 求平均分  85分以上人的数量
Scanner input=new Scanner(System.in);
int count=0; //总人数
double avg=0; //平均分
double sum=0; //求和
int score=0; //总成绩
for (int i = 1; i <3; i++) {  //班级  
    System.out.println("请输入第"+i+"个班级的成绩:");   
    avg=0;
    sum=0;
    for (int j = 1; j <=4 ; j++) { //学员       
       System.out.println("第"+j+"个学员的成绩");  
       score = input.nextInt();   
       sum=sum+score; 
        if (score>=85){   
            count++; 
        } 
    } 
    avg=sum/4; 
    System.out.println("第"+i+"个班级的平均分"+avg); 
    System.out.println("85分的人数:"+count);
}

小题

int i,j,x=0;
for ( i = 0; i < 2; i++) {  
    x++; 
    for ( j = 0; j <=3 ; j++) {  
        if (j%2==0)continue;
        x++;
    }
    x++;
    System.out.println(x);}
​
//结果为8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值