Java学习第4天

while 与 do-while之间的区别

  • while 先判断条件,再执行循环体,(后面没有;)
  • do - while 先执行一次循环体,再判断条件,进行循环。(后面有;)
public static void main(String[] args) {
        int sum = 0;
        int i = 1; 
//      do {
//          i += 1;
//          System.out.println(i + ". Hello,world!");
//      } while (i < 10);
//      System.out.println("程序结束!!!");
        
    /*  do {
            sum += i;
            i++;
        } while (i <= 100 );
        System.out.println("最终结果为:" + sum);//1到100相加
        
        //for(;;)括号中可以不写条件,但是必须要有两个分号;
        for (int j = 1; j <= 10; j++) {//for循环
            System.out.println(j + ". hello,world");
        }
        */
        for(i = 1; i <= 100; i++){
            sum += i;
        }
        System.out.println(sum);
    }
for循环练习:输入一个数,算出这个数的阶层
  • for(;;)循环括号中可以不写条件,但是必须要有两个;
  • 对于较大的数字,建议使用double,它可以用科学计数法表示
public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入一个整数:");
        int n = input.nextInt();
        if (n >= 0) {
            double result = 1;//使用double,可以用科学计数法
            for(int i = 1;i <= n; i++){
                result *= i;
            }
            System.out.println(n + "的阶层为:" + result);
        }
        else {
            System.err.println("输入错误");
        }               
        input.close();
    }
练习:猜字游戏
  • Math.random()用于系统产生0~1的随机数,但不包括1
public static void main(String[] args) {
        int answer = (int) (Math.random() * 100 + 1);
        Scanner input = new Scanner(System.in);
        int thyAnswer;
        int counter = 0;
        do {
            counter += 1;
            System.out.print("请输入一个数字:");
            thyAnswer = input.nextInt();//thy表示你的
            if (thyAnswer > answer) {
                System.out.println("小一点");
            }
            else if(thyAnswer < answer){
                System.out.println("大一点");
            }
            else{
                System.out.println("恭喜你猜对了!你总共猜了" + counter + "次");
            }
        } while (thyAnswer != answer);
        if (counter > 7) {
            System.out.println("智商捉急");
        }
        input.close();
    }
练习:for嵌套switch-case
public static void main(String[] args) {                
        int a = 0;
        int b = 0;
        int c = 0;
        int d = 0;
        int e = 0;
        int f = 0;
        for(int i = 1;i <= 60000;i++){
            int face = (int) (Math.random()*6+1);           
            switch (face) {
            case 1:     
                a++;break;      
            case 2:     
                b++;break;
            case 3:     
                c++;break;
            case 4:     
                d++;break;
            case 5:     
                e++;break;
            case 6:     
                f++;break;
            default:
                break;
            }       
        }
        System.out.println("1点出现的次数为:" + a);
        System.out.println("2点出现的次数为:" + b);
        System.out.println("3点出现的次数为:" + c);
        System.out.println("4点出现的次数为:" + d);
        System.out.println("5点出现的次数为:" + e);
        System.out.println("6点出现的次数为:" + f);
    }
练习:求出100~999之间的水仙花数
  • 例:153 = 1^3 + 5^3 + 3^3 (153就是水仙花数)
public static void main(String[] args) {
        
        for(int i = 100;i <= 999;i++){
            int hun = i / 100;
            int ten = (i % 100) / 10;
            int one = i % 10;
            if (i == hun*hun*hun + ten*ten*ten + one*one*one) {
                System.out.println(i + "是水仙花数:");
            }
        }
    }
练习:输入两个数,求最大公约数和最小公倍数
public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入两个正整数:");
        int a = input.nextInt();
        int b = input.nextInt();
        for(int i = a < b ? a : b; i >= 1; i--){
            if (a % i == 0 && b % i == 0) {
                System.out.println("最大公约数为:" + i);
                System.out.println("最小公倍数为:" + a * b / i);
                break;              
            }
        }
        input.close();
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,542评论 0 41
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,950评论 0 2
  • 分支结构 分支结构(选择结构) - switch 开关case 不加 break 就会一直往下执行,default...
    迷茫o阅读 1,508评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,412评论 18 399
  • 一、 1、请用Java写一个冒泡排序方法 【参考答案】 public static void Bubble(int...
    独云阅读 5,254评论 0 6

友情链接更多精彩内容