javaSE练习Day02 while条件循环

import java.util.Random;
import java.util.Scanner;

/*
 *
 *  条件循环 while,do while
 * */
public class While {
    //1输出1-6
    //2输出1,3,5,7
    //3输出6-1
    //
    public static void test() {
        int i = 1;
        while (i++ < 6) {
            System.out.println(i);
        }
        i = 1;
        while (i < 6) {
            i++;
            System.out.println(i);
        }
        i = 1;
        //先判断再加加,上面二者一样
        while (++i < 6) {
            System.out.println(i);
        }
        i = 1;
        //先加加在判断不能替代
        while (i < 6) {
            System.out.println(i++);
        }
        i = 1;
        while (i < 6) {
            System.out.println(i);
            i++;//++i更好
        }
        //同样这样也可以,也就是说可以直接拿出来,小技巧
        i = 1;
        while (i < 6) {
            System.out.println(i);
            i += 1;//好于i = i+1;
        }
        //第一种最好,赋值,自增一起操作


        //输出1-6
        int num = 1;
        while (num <= 6) {//num表示要输出的值,有点像for in  (int num:arr)
            System.out.println(num++);
        }
        //输出6-1
        while (num >= 2) {
            System.out.println(--num);
        }

        //输出1,3,5,7
        while (num <= 7) {
            System.out.println(num);
            num += 2;
        }

        num = 1;
        while (num < 20) {
            System.out.println(num);
            num += 2;
            if (num > 7) {
                break;
            }
        }

        num = 1;
        while (num < 20) {
            if ((num & 1) == 0) {//偶数
                num++;//偶数也要++
                continue;
            }
            System.out.println(num++);
            if (num > 7) {
                break;
            }
        }
    }
//    Thread.currentThread()返回线程类对象
    //此对象有sleep()方法 暂时休眠,会醒的,参数是long类型, 1000ms = 1s
    //每两秒输出逐个输出1,3,5,7
    //Thread.sleep(2000);
    //定时,时间戳

    //do while最少执行一次,第一次就不判断了
    //确实需要
    public static void main(String[] args) {
//        testLozenge();
//        game(200,1000);
        test();
    }


    //猜数游戏
    public static void game(int start, int end) {
        //随机数
        Random random = new Random();
        int num = random.nextInt(100);//可以传递参数控制范围
        System.out.println("随机数是" + num);
        //产生随机数的范围,公式  bound:多少个数, +1从第几个数开始
        num = random.nextInt(end - start + 1) + 1;//随机数公式
        System.out.println("随机数范围为" + start + "-" + end);
        System.out.println("随机数是" + num);
        //键盘获取数值
        Scanner sc = new Scanner(System.in);
//        System.out.println("请输入随机数的范围");
        int count = 0;//计数器
        //最多尝试10次---这里可以改为for
        while (count < 10) {
            count++;
            System.out.printf("请在%d-%d范围内输入一个数", start, end);
            if (!sc.hasNextInt()) {
                //可以判断下一个数是否整数
                count--;
                System.err.println("请输入整数");
                sc.nextLine();
            }
            int num2 = sc.nextInt();
            if (num2 < start || num2 > end) {
                System.err.printf("您输入的整数不在合适范围内,请重新输出,范围是%d-%d%n", start, end);
                count--;
                continue;
            }
            if (num2 == num) {
                System.out.println("挑战成功");
                break;
            } else {
                if (num2 > num) {
                    System.out.println("您输入的数过大");
                } else {
                    System.out.println("您输入的数过小");
                }
            }
            System.out.println("您的一共尝试了" + count + "次" + "还有" + (10 - count) + "次机会");
        }
        if (count == 10) {
            System.out.println("游戏结束");
        }
    }
    //System.err.println();错误输出信息

    //输出菱形
    //如果用到while,注意条件位置,增量位置。可以没有,但是若是有,需要添加。用for更方便
    public static void testLozenge() {
        //
        int splength = 20;
        int xlength = 1;//初始值
        int line = 1;
        while (line < 20) {//20
            int i = 0;
            //先输出,还是先增加
            while (i++ < splength) {
                System.out.print(" ");
            }
            i = 0;
            while (i++ < xlength) {
                System.out.print("*");
            }
            System.out.println();
            if (line < 10) {//是否添加等号
                xlength += 2;
                splength--;
            } else {
                xlength -= 2;
                splength++;
            }
            line++;
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漫漫程序鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值