zoukankan      html  css  js  c++  java
  • day04-java-循环结构(while、do-while、for)

        循环结构(while、do-while、for)    

    任何复杂的程序逻辑都可以通过三种结构来实现:
    1)顺序结构:从上往下逐行执行,每句必走
    2)分支结构:有条件的执行某语句一次,并非每句必走
    3)循环结构:有条件的执行某语句多次,并非每句必走


    1.循环:反复执行一段相同或相似的代码


    2.循环三要素:
      1)循环变量的初始化
      2)循环的条件(以循环变量为基础)
      3)循环变量的改变(向着循环的结束变)
      循环变量:在循环过程中所改变的那个量


    3.循环结构:
      1)while:先判断后执行,有可能一次都不执行
      2)do...while:先执行后判断,至少执行一次
                   第1要素与第3要素相同时首选
      3)for:应用率最高,固定次数循环


    4.break:跳出循环
      continue:跳过循环体中剩余语句而进入下一次循环

    Math.random():
    Math.random()-------------0.0到0.9999999999...
    *1000---------------------0.0到999.99999999...
    +1------------------------1.0到1000.9999999...
    (int)---------------------0到999
    +1------------------------1到1000

    for-随机加法运算器

    package day04;
    import java.util.Scanner;
    //随机加法运算器
    public class Addition {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int score = 0; //总分
            for(int i=1;i<=10;i++){ //10次
                int a = (int)(Math.random()*100); //加数1
                int b = (int)(Math.random()*100); //加数2
                int result = a+b; //
                System.out.println("("+i+")"+a+"+"+b+"=?"); //1.出题
                System.out.println("算吧!");
                int answer = scan.nextInt(); //2.答题
                if(answer==-1){ //3.判题
                    System.out.println("下次再来吧!");
                    break; 
                }
                if(answer==result){
                    score += 10; //答对一题加10分
                    System.out.println("答对了");
                }else{
                    System.out.println("答错了");
                }
            }
            System.out.println("score="+score);
        }
    }

    while循环演示:

    package day04;
    //while循环的演示
    public class Addition {
        public static void main(String[] args) {
            int num = 1;
            while(num<10){
                System.out.println(num+"*9="+num*9);
                num++;
            }
            System.out.println("over");
        }
    }

    do while循环演示:

    package day04;
    import java.util.Scanner;
    //猜数字小游戏
    public class Addition {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int num = (int)(Math.random()*1000+1); //1到1000之内的随机数
            System.out.println(num); //作弊
            int guess;
            do{
                System.out.println("猜吧!");
                guess = scan.nextInt(); //1,3
                if(guess==0){
                    break;
                }
                if(guess>num){
                    System.out.println("太大了");
                }else if(guess<num){
                    System.out.println("太小了");
                }
            }while(guess!=num); //2
            if(guess==num){
                System.out.println("恭喜你,猜对了!");
            }else{
                System.out.println("下次再来吧!");
            }
        }
    }
            

     数列求和

    计算1+2+3+4+5...+100的和;
    package day04;
    //计算1+2+3+4+5...+100的和;
    import java.util.Scanner;
    public class Addition {
        public static void main(String[] args) {
            int num = 0;
            for(int i=1;i<=100;i++){
                num = num + i;
            }
            System.out.println(num);
        }
    }
    结果:5050

    有数列为:9,99,999,...,9999999999。要求使用程序计算此数列的和,并在控制台输出结果:

    方法一:
    public class SumOfSeq {
            public static void main(String[] args) {
                // 数列求和
                long nine = 9;
                long result = nine;
                for (int i = 2; i <= 10; i++) {
                    nine = nine * 10 + 9;
                    result += nine;
                }
                System.out.println("9+99+999+...+9999999999=" + result);
            }
        }
    
    方法二:
    public class Test01 {
    
        public static void main(String[] args) {
            //9+99+999+9999+...+9999999999=?
            long sum = 0; //
            long num = 0; //加数
            for(int i=1;i<=10;i++){ //10次
                num = num*10+9;
                sum = sum+num;
            }
            System.out.println("sum="+sum);
    
        }
    }

    另有数列:1+1/2+1/3…+1/n(n>=2)。要求使用交互的方式计算此数列的和:用户在控制台录入需要计算的整数 n 的值,程序计算此数列的和,并在控制台输出结果。

    方法一:
    import java.util.Scanner;
        public class SumOfSeq2 {
            public static void main(String[] args) {
                Scanner scanner = new Scanner(System.in);
                System.out.println("请输入整数(例如10):");
                int n = scanner.nextInt();
                double result = 0;
                for (int i = 1; i < n; i++) {
                    result += 1.0 / i;
                    if(i==1){
                        System.out.print("1+");
                    }else{
                        System.out.print("1/" + i + "+");    
                    }
                }
                result += 1.0 / n;
                System.out.print("1/" + n + "=" + result);
            }
        }
    
    方法二:
    public class Test01 { public static void main(String[] args) { //1/1+1/2+1/3+...+1/n=? int n = 15; double sum = 0; for(int i=1;i<=n;i++){ //n次 sum = sum+1.0/i; } System.out.println("sum="+sum); } }
  • 相关阅读:
    Django框架 之 MTV模型、 基本命令、简单配置
    Django models模型ORM
    Django 链接数据库错误 Strick Mode 解决
    [BZOJ 2002] [HNOI2010]弹飞绵羊(Link Cut Tree)
    [BJOI2014]大融合(Link Cut Tree)
    [BZOJ1576] [BZOJ3694] [USACO2009Jan] 安全路径(最短路径+树链剖分)
    [Codeforces 1005F]Berland and the Shortest Paths(最短路树+dfs)
    CSP-S 2019游记
    浅谈高维前缀和
    [luogu 3175] [HAOI2015]按位或(min-max容斥+高维前缀和)
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/6135684.html
Copyright © 2011-2022 走看看