3.Java基本语法下

5.程序流程控制

流程控制语句时用来控制程序中各语言执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块

其他流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:

1.顺序结构:

程序从上到下逐行执行,中间没有任何判断和跳转

2.分支结构:

根据条件,选择性地执行某段代码

有if else 和switch-case两种分支语句

3.循环结构:

根据循环条件,重复性的执行某段代码

有while和do while和for三种循环语句

注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素

循环语句
与c语言基本一致

例题:输入两个数mn,求最大公约数和最小公倍数:

package lianxiruanjinabao1;

import java.util.Scanner;

public class ForTest {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("输入两个正整数m;");
        int m = scan.nextInt();
        System.out.println("输入两个正整数n;");
        int n = scan.nextInt();
        int min = (m < n) ? m : n;
        for (int i = min; i >= 1; i--) {
            if (m % i == 0 && n % i == 0) {
                System.out.println("最大公约数:" + i);
                break;
            }
        }
        int max =(m>n)?m:n;
        for(int j =max;;j++){
            if(j%m==0&&j%n==0){
                System.out.println("最小公倍数:"+j);
                break;
            }
        }
    }
}

三位数水仙花的输出:

package lianxiruanjinabao1;

public class ForTest {
    public static void main(String[] args) {

        int num,a, b, c;
        for (num = 100; num < 1000; num++) {
            c = num % 10;
            b = (num - c) % 100/10;
            a = (num - c - b * 10) / 100;
            if (num == Math.pow(a,3) + Math.pow(b,3)+ Math.pow(c,3)) {
                System.out.println(num);
            }
        }
    }
}

6.Scanner类

如何从键盘获取不同类型的变量:需要使用Scanner类

具体实现步骤:

​ 1.导包:import java.util.Scanner

​ 2.Scanner的实例化:Scanner scan=new Scanner(System.in)

​ 3.调用Scanner类的相关方法(next() nextInt()等)来获取指定类型的变量

对于char型获取,Scanner没有提供方法,只能获取一个字符串。

简单的练习:

package lianxiruanjinabao1;
import java.util.Scanner;
public class ScannerTest {
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);

        System.out.println("请输入你的名字:");
        String name = scan.next();
        System.out.println(name);

        System.out.println("请输入你的年龄:");
        int age = scan.nextInt();
        System.out.println(age);

        System.out.println("请输入你的体重:");
        double weight = scan.nextDouble();
        System.out.println(weight);

        System.out.println("你是人吗?(true or false)");
        boolean isperson = scan.nextBoolean();
        System.out.println(isperson);

        System.out.println("请输入你的你的性别");
        String gender = scan.next();
        System.out.println(gender);
    }
}

7.break和continue

break:经常在switch-case循环中使用,结束当前循环

continue:循环结构中,结束当次循环

8.数组

1.数组(Array)

数组是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式,对这些数据进行统一管理

数组的常见概念:

​ 数组名

​ 元素

​ 角标、下标、索引

​ 数组的长度

特点:数组是有序排列的

知识点:

1.数组属于引用数据类型。

2.创建数组对象会在内存中开辟一整块连续的空间

3.数组的长度一旦确定,就不能修改

2.数组的分类

1.按照维度:一维数组、二维数组。。

2.按照数组元素的类型:基本数据类型元素的数组,引用数据类型元素的数组

3.一维数组的使用

1.一维数组的声明和初始化
int [] ids;
//静态初始化,数组的初始化和数组元素的复制操作同时进行
ids=new int []{1001,1002,1003,1004};
//动态初始化,数组的初始化和数组元素的复制操作分开
int [] ids1 =new int[4];
2.如何调用数组的指定位置的元素

通过调用小标的方式调用

3.如何获取数组的长度

属性:length

System.out.println(ids1.length);
4.如何遍历数组

for循环的使用

for (int i=0;i< names.length;i++){
    System.out.println(names[i]);
}
5.数组元素的默认初始化值
int [] arr = new int [4];
for(int i=0;i< arr.length;i++){
    System.out.println(arr[i]);
}
char [] arr1 = new char [4];
for(int i=0;i< arr1.length;i++){
    System.out.println(arr1[i]);
}

两个默认初始值不一样,原因在于char存储的内容为阿斯克码0

数组元素时引用数据类型是:null

9.Arrays类

1.判断两个数组是否相同:boolean isquit = Arrays.equals(arr1,arr2);

int[]arr1 =new int[]{1,2,3,4};
int[]arr2 =new int[]{1,2,3,4};
boolean isquit = Arrays.equals(arr1,arr2);
System.out.println(isquit);

2.输出数组信息:Arrays.toString(arr1)

System.out.println(Arrays.toString(arr1));

3.将指定值填入数组中Arrays.fill(arr1,10);

Arrays.fill(arr1,10);
System.out.println(Arrays.toString(arr1));

4.对数组进行排序:Arrays.sort(arr2);

Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));

5.查询数组中有没有某个数据:int index = Arrays.binarySearch(arr3,1);

int[] arr3 =new int []{-98,32,2,34,54,6,7,89,90};
int index = Arrays.binarySearch(arr3,1);
System.out.println(index);

没有的话返回负值</u

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值