java自学DAY02

循环综合练习

无限循环
for(;;)
{
   语句;
}

while(true)
{
    语句;
}
do
{
    语句;
} while(true)

跳转语句:continue跳过本次循环继续执行下次循环;break结束整个循环。

案例1

public static void main(String[] args){
    for(int i = 0;i<=100; i++){
        //判断个位十位以及7的倍数 个位i%10 十位i/10%10 
        if(i % 7 == 0 || i%10 ==7 || i/10%10==7)
            {
                System.out.println("过");
                continue;
            }
        System.out.println(i);
    }

}
案例2

public static void main(String[] args)

{
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个整数数字:");
    int x = sc.nextInt();
    for(int i = 0;i<=x;i++)
    {
        //break 一旦找到立即退出
        if(i*i == x){    System.out.println(i);break;    }
        else if(i*i>x){ System.out.println(i-1);break;  }
    }



}
案例3 判断是否是质数
错误写法示例
public static void main(String[] args)
{
    //判断是否是质数
    //错误写法 例子输入9 当2时直接输出了不是质数,但是3*3=9
    Scanner sc = new Scanner(System.in);
    int num = sc.nextInt();
    for(int i =2;i<num;i++)
    {
        if(num%i==0){System.out.println("输入的数不是质数");break;}
        else
            {System.out.println("输入的数是质数");break;}
    }

}
正确写法
public static void main(String[] args)
{
    //设置一个标识标记是否是质数 如果循环下来标记一直不变则是质数
    bool flag = true;
    Scanner sc = new Scanner(System.in);
    int num = sc.nextInt();
    for(int i =2;i<num;i++)
    {
        if(num%i==0){flag = false;break;}
        
    }
    if(flag){System.out.println("是质数");}
    else{System.out.println("不是质数");}

}
//上述代码还可以简化  如果数字很大 那么会循环很多次 
//简化思路:根据观察可得若a*b=number,那么a==b==number的平方根或者(a>number的平方根 b<number的平方根 )或者(a<number的平方根 b>number的平方根)
//所以可以只循环到number的平方根
案例4 猜数字
获取随机数
//导包
import java.util.Random
//创建对象
Random r = new Random();
//生成随机数
int number = r.nextInt(100);//0-99
public static void main(String[] arg)
{
    //导包
    import java.util.Random
    //创建对象
    Random r = new Random();
    //生成随机数
    int number = r.nextInt(100)+1;//生成1-100之间的一个随机数
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你猜的随机数");
    int guess = sc.nextIn();
    while(true)
    {    
        if(guess >number){System.out.println("你猜的数字大了");}
        else if(guess <number){System.out.println("你猜的数字小了");}
        else{System.out.println("猜中了");break;}
    }
}

数组

数组的定义:

//格式一 数据类型[] 数组名
int[] array
//格式二 数据类型 数组名[]
int array[]

数组的静态初始化:

//完整格式范例
int[] arr1 = new int[]{11,22,33}
//简化格式
int[] arr2 = {11,22,33}

数组的动态初始化:

范例int[] arr = new int[3];

数组案例 交换数据
public static void main(String args)
{
    int[] array = {1,2,3,4,5};
    for(int i=0,j=array.length-1;i<j;i++,j--)
    {
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    for(int i=0;i<array.length;i++)
    {
        System.out.print(array[i]+"");
    }
}

方法

定义:

方法是程序中最小的执行单元,重复、具有独立功能的代码可以抽取到方法中,方法可以提高代码的复用性和可维护性。

方法的重载:

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

参数不同指的是个数不同或者类型不同或者顺序不同,其中不建议使用顺序不同的方法重载。

案例 判断数字是否已经存在在数组中:
public static void main(String[] args)
{
    int[] arr={12,32,45,67,87,54};
    boolean flag == contains(arr,89);
    System.out.println(flag);
}
public static boolean contains(int[] arr,int num)
{
    for(int i = 1;i<arr.length;i++)
    {
        if(arr[i] == num)
            return true;//为什么不能用break呢,弄清楚return和break的区别
       
    }
    //关键弄清楚什么时候才能断定数组中是否存在该数字
    //当数组全部遍历比较完之后才能断定
    return false;

}
//return与循环没什么关系,与方法有关,表示1结束方法2返回结果,
//return之后整个方法结束,里面的循环也随之结束;
//break与方法没什么关系,结束循环或者switch的
数据类型

基本数据类型:数据值存储在自己的空间中,如果赋值给其他变量,赋的是真实的值。

引用数据类型:数据值存储在其他空间中,自己空间中存储的是地址值,赋值给其他变量的话赋的就是地址值。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值