day5---------------仔细一点

一,简单计算器的实现:

package practice;
    //简单计算器的实现
import java.util.Scanner;
    public class demo1 {

        public int jia(int x,int y){
            return x+y;
        }
        public int jian(int x,int y){
            if(x>y){
                return x-y;
            }else{
                return -(y-x);
            }
        }
        public int cheng(int x,int y){
            return x*y;
        }
        public int div(int x,int y){
            if(y==0){
                System.out.println("对不起,除数不能为零!");
                return 0;
            }else{
                return x/y;
            }
        }
        public static void main(String[]args){
            Scanner input=new Scanner(System.in);
            demo1 de=new demo1();
            int result=0;
            boolean isFlage=false;
            while(true){
                isFlage=true;
                System.out.println("欢迎使用-----简单计算器-----------");
                System.out.print("请您输入第一个要操作的数:");
                int x=input.nextInt();
                System.out.print("请您输入第二个要操作的数:");
                int y=input.nextInt();
                System.out.print("请您输入运算符:+,-,*,/,(y退出操作)");
                char yusuan=input.next().charAt(0);//我就说怎么调用的是第一个,因为,还是将运算符没有操作进去导致的
                switch(yusuan){
                    case '+':
                        System.out.println(de.jia(x,y));//这边的调用方法有一点问题,哦哦,粗心了,全部调用的是这种方法
                        isFlage=false;
                        break;
                    case '-':
                        System.out.println(de.jian(x,y));
                        isFlage=false;
                        break;
                    case '*':
                        System.out.println(de.cheng(x,y));
                        isFlage=false;
                        break;
                    case '/':
                        System.out.println(de.div(x,y));
                        isFlage=false;
                        break;
                    case 'Y':
                        isFlage=false;
                        break;
                    default:
                        System.out.println("对不起,您输入的有误!");
                }
            }

        }
    }


运行结果:还是比较满意的!

2

二:数组的内存

    首先,数据类型是分为两大类,一个是八大基本数据类型,一个是引用数据类型,

栈内存中,装的是基本数据类型的值和引用数据类型的地址,而在堆内存当中,存储的是引用数据类型的值,栈内存先进后出,自下而上的存储,方法执行完毕,自动释放空间;而堆内存中,使用new创建的对象,堆内存中不会自动释放空间,需要垃圾回收器来回收,接下来,用赋地址的代码来说明

package practice;
//赋地址的操作,建立一个数组,给他具体的值,建立一个空数组,确定好他的长度,将
//建立好的数组中的值赋值给空的数据!并画出具体的内存示意图
public class demo2 {
    public static void main(String[]args){
        int[]arr1=new int[]{1,3,4,5,6};//创建一个长度为四的数组
        int[]arr2=new int[8];//创建长度为八的空数组
        arr2=arr1;//将地址进行赋值
        for(int i=0;i<=arr2.length-1;i++){//for循环只是用来遍历的,其实没啥主要作用,就说呢,将arr1的地址值赋值给arr2不就行了吗
           System.out.print(arr2[i]+"\t");
        }
    }
}

运行结果: 

 显然,这样会产生内存垃圾,那么,换一种方式:

package practice;
public class demo2 {
    public static void main(String[]args){
        int[]arr1=new int[]{1,3,4,5,6};//创建一个长度为四的数组
        int[]arr2=new int[8];//创建长度为八的空数组
        for(int i=0;i<=arr1.length-1;i++){
            arr2[i]=arr1[i];//这样会产生越界问题
        }
        for(int i=0;i<=arr2.length-1;i++){//for循环只是用来遍历的,其实没啥主要作用,就说呢,将arr1的地址值赋值给arr2不就行了吗
           System.out.print(arr2[i]+"\t");
        }
    }
}

 运行结果:注意向左赋值 

三:查找元素的值

package practice;
import java.util.Scanner;
//元素的查找
public class demo3 {
    public void search(){
        System.out.println("有一串数字,猜猜看!");
        Scanner input=new Scanner(System.in);
        int[] arr1={12,34,165,34,23,45,22,2,3,4,5,6,7,8};
        boolean isflag=false;
        for(int i=3;i>0;i--){
            System.out.println("您有"+i+"次机会,请输入您猜的数字!");
            int number=input.nextInt();
            for(int j=0;j<=arr1.length-1;j++){
                if(number==arr1[j]){
                    System.out.println("您是一个小天才!猜对了");
                    isflag=true;
                    break;
                }else{
                    System.out.println("猜错了!");
                    break;
                }
            }
            if(isflag==false){
            }
        }
    }
    public static void main(String[]args){
        demo3 aa=new demo3();
        aa.search();
    }
}

运行结果:有点有问题,就是猜对了,我直接想跳出大的循环,但不知道怎么去实现它!

四:折半查找算法

折半查找

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焦某人要努力呀!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值