java基础第三讲——顺序、条件、循环结构

java流程

顺序结构
条件结构
循环结构
代码练习

顺序结构

基础语句的结构。
结构流程图:
这里写图片描述


public class Hello {
    public static void main(String[] args) {
        System.out.println("HelloWord");
    }
}

条件结构

if语句

结构流程图:
这里写图片描述

Scanner scanner = new Scanner(System.in);//控制台输入
        int javaScore = scanner.nextInt();
        int musicScore = scanner.nextInt();
        if ((javaScore > 90 && musicScore > 80) || (javaScore == 100 && musicScore > 70)) {
            System.out.println("得到奖励");
        } else {
            System.out.println("无奖励措施");
        }

switch语句

switch(key){
case 1:

      break;
}

switch 比 for 效率快

循环结构

for循环

结构流程图:
这里写图片描述

public static void gaoSi(){
        int sum = 0;
        for(int i = 0;i<10000;i++){
            sum+=i+1;
        }
        System.out.println(sum);
    }

while循环

结构流程图:(类似for循环)
这里写图片描述

while(//循环条件){
//循环体
}

do while循环

结构流程图:
这里写图片描述

do{}
while()

//switch结构  switch(key){case 1: break;}
    //成绩的分类
    public static void switchTest() {
        Scanner scanner = new Scanner(System.in);
        int javaScore = scanner.nextInt();
        int key = javaScore/10;
        switch (key) {
        case 10:
            System.out.println("满分");
            break;
        case 9:
            System.out.println("优秀");
            break;
        case 8:
            System.out.println("中等");
            break;
        case 7:
            System.out.println("良好");
            break;
        case 6:
            System.out.println("及格");
            break;
        default:
            System.out.println("不及格,等待补考");
            break;
        }
    }
    //高斯和
    public static void gaoSi(){
        int sum = 0;
        for(int i = 0;i<10000;i++){
            sum+=i+1;
        }
        System.out.println(sum);
    }
    //水仙花数
    public static void shuiXian(){
        for(int i = 100;i<1000;i++){
            int bai = i/100;
            int shi = i/10%10;
            int ge = i%10;
            int sum = bai*bai*bai+shi*shi*shi+ge*ge*ge;
            if (i == sum) {
                System.out.println(i);
            }
        }
    }
    //打印*金字塔
    public static void jinZiTa(){
        for(int i = 0;i<=5;i++){
            for(int k = 0;k<5-i;k++){
                System.out.print(" ");
            }
            for(int j = 0;j<i*2-1;j++){  //找*的个数
                System.out.print("*");
            }
            System.out.println();
        }
    }
    //九九乘法表
    public static void chengFa(){
        for(int i = 1;i<10;i++){
            for(int j = 1;j<=i;j++){
                System.out.print(i+"*"+j+"="+i*j+"\t");
            }
            System.out.println();
        }
    }
    //找1~1000的素数
    public static void suShu(){
        for(int i = 2;i<1001;i++){
            boolean isSuShu = true;//设置boolean值
            for(int j = 2;j<i;j++){
                int m = i%j;
                if (m == 0) {
                    isSuShu = false;//将原boolean值重新赋值
                    break;//只要有一次不是素数就会跳出,节省计算时间
                }
            }
            if(isSuShu){
                System.out.println(i);
            }
        }
    }
    //找1~1000的完全数
    public static void perfectNumber(){
        for(int i = 1;i<1000;i++){
            int m = 0;
            for(int j = 1;j<i;j++){
                if (i%j == 0) {
                    m+=j;
                }
            }
            if (m == i) {
                System.out.println(i);
            }
        }
    }
    //兔子两个月成熟 成熟的兔子一个月生一对兔子 现在我有一对兔子。问20个月以后我有多少对兔子
    //兔子生育   1 2 3 4 6 9 13 
    //          a b c d
    //            a b c d
    public static void rabbit(){
        int a = 1;
        int b = 2;
        int c = 3;
        int d = 0;
        for(int i = 4;i<21;i++){
            d = a+c;
            a = b;
            b = c;
            c = d;
        }
        System.out.println(d);
    }
    //用字符串转换将一个十进制转化成二进制计算1的个数
    public static void zhuanHuan(){
        int count = 0;
        int index = 4;
        String str = Integer.toBinaryString(index);
//      System.out.println(str);
        int indexy = Integer.parseInt(str);
        System.out.println(indexy);
        for(int i = 0;i<=str.length();i++){
            if (indexy%2==1) {
                count++;
            }
            indexy/=2;
        }
        System.out.println(count);
    }
    //转化二进制的1的个数
    public static void zhuangHuan2(){
        int index = 7;
        int count = 0;
        while(index!=0){
            if (index%2==1) {
                count++;
            }
            index/=2;
        }
        System.out.println(count);
    }

    //课堂练习题
    public static void train1(){
        int sum = 0;
        int m = 1;
        for(int i = 1;i<21;i++){
//          int m = 1;
//          m <<=i;
//          sum += m-1;
            m *= 2;
            sum += m-1;
        }
        System.out.println(sum);
    }

//  public static void train2(){
//      double S = 0.0;
//      int i =2;
//      while(i<4){             //错误的    i不应该是连续的
//          S = S+1.0/(i*(i-1));
//          i++;
//      }
//      System.out.println(S);

    public static void train3(){
        double sum = 0;
        int n = 100;
        int i = 1;
        while (i<=n) {
            if (i%2 == 0) {
                sum-=1.0/i;
            }
            else {
                sum+=1.0/i;
            }
            i++;
        }
        System.out.println(sum);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,由于浮点数的精度问题,可能会出现无限循环小数。对于这种情况,可以使用BigDecimal类来处理。 BigDecimal类可以表示任意精度的十进制数,它可以处理大于64位的整数和小数。在使用BigDecimal类时,需要注意以下几点: 1. 使用BigDecimal类时,应该使用其构造方法来初始化BigDecimal对象,而不是使用double类型的值来初始化。 例如: ``` BigDecimal bd = new BigDecimal("0.1"); ``` 2. 在进行浮点数运算时,应该使用BigDecimal类提供的方法,而不是使用double类型的运算符。 例如: ``` BigDecimal a = new BigDecimal("0.1"); BigDecimal b = new BigDecimal("0.2"); BigDecimal c = a.add(b); ``` 3. 在比较两个BigDecimal对象的值时,应该使用compareTo()方法,而不是使用等于(==)或不等于(!=)运算符。 例如: ``` BigDecimal a = new BigDecimal("0.1"); BigDecimal b = new BigDecimal("0.2"); if (a.compareTo(b) < 0) { System.out.println("a < b"); } else if (a.compareTo(b) > 0) { System.out.println("a > b"); } else { System.out.println("a = b"); } ``` 关于java无限循环小数判定问题,可以通过以下代码来解决: ``` public static boolean isRepeatingDecimal(BigDecimal num) { BigDecimal[] arr = num.divideAndRemainder(BigDecimal.ONE); BigDecimal decimalPart = arr[1]; String decimalStr = decimalPart.toString().substring(2); // 去掉小数点和整数部分 if (decimalStr.length() < 2) { return false; // 小数部分长度小于2,不可能循环 } int halfLength = decimalStr.length() / 2; for (int i = 1; i <= halfLength; i++) { String str = decimalStr.substring(0, i); if (decimalStr.matches("^(" + str + ")+(.*)" + str + "$")) { return true; // 存在循环节 } } return false; // 不存在循环节 } ``` 该方法接收一个BigDecimal对象,判断其是否为无限循环小数,返回true或false。 以上是关于Java中处理无限循环小数的基础知识和方法介绍,希望能对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值