10while

循环:重复执行的事情
特征:循环操作/循环体、循环条件
程序中的循环=循环条件+循环操作

while:先判断,后执行

while(循环条件)
{
        循环操作;
}
    int i = 0;
        while(i<10000)
        {
            System.out.println(i+"hello world");
            i++;//更新变量

1.while结构与if很像,不过符合循环条件后前者执行后返回到执行条件,后者则直接结束
2.循环要注意更行变量,防止死循环(无限循环)
例题

//2010上网人数8000万,假设每年按30%增加,问哪一年人数增长到3亿?
        double persons = 0.8;
        int year = 2010;
        while (persons<3){
            year++;
            persons=persons*1.3;
        }
        System.out.println(year+"年人数增长到3亿");

        //计算100以内的偶数之和
//        int s = 0;
//        int sum = 0;
//        while (s<100){
//            s =s+2;
//            sum = sum + s;
//        }
//        System.out.println(sum);
//        int sum = 0 ;
//        int s = 1 ;
//        while (s <=100){
//            if (s % 2==0){
//                sum = sum +s;
//            }
//            s++;
//        }
//        System.out.println(sum);
        //不能被3整除的数之和
        int sum = 0 ;
        int s = 1 ;
        while (s <=100){
            if (s % 3!=0){
                sum = sum +s;
            }
            s++;
        }
        System.out.println(sum);

do...while:先执行后判断
do...while语法上至少执行一次

do
{
    循环操作;
}while(循环条件);

例题

//模拟商店
        int money = 0;
        Scanner input = new Scanner(System.in);
        String incontinue = "" ;
        do {
            System.out.println("请选择:\n1.T恤(100)  2.夹克(200)  3.衬衫(300)");
            int choice = input.nextInt();
            if (choice == 1){
                System.out.println("T恤\t"+100);
                money = money+100;
            }else  if (choice ==2){
                System.out.println("夹克\t"+200);
                money = money+200;
            }else  if (choice ==3){
                System.out.println("衬衫\t"+300);
                money = money+300;
            }else {
                System.out.println("输入有误");
            }

            System.out.println("是否继续?y/n");
            incontinue = input.next();
        }while (incontinue.equals("y"));//变量的作用域 最近一对{}
        System.out.println("一共"+money);

一些难的例子

//用循环实现 登录操作:若用户名(zs),密码错误(abc),则给出提示,并重新登录
        Scanner input = new Scanner(System.in);
        String username = "";
        String password = "";
        do {
            if (!(username.equals("") && password.equals(""))){
                System.out.println("请重新输入");
            }
            System.out.println("请输入用户名");
            username = input.next();//next不要收回车符,所以为空username.equals("") && password.equals(""),第一次必须打东西
            System.out.println("请输入密码");
            password = input.next();
        }while(!(username.equals("zs") && password.equals("abc")));
        System.out.println("登录成功");

 //整数的翻转输出,12345 ->54321
        int num = 12345;
        int rear = -1 ;//每次打印的数值
        num = num *10;//分析
//        //5
//        num = num/10;//12345
//        rear = num%10;
//        System.out.println(rear);
//        //4
//        num = num/10;//1234
//        rear = num%10;
//        System.out.println(rear);
//        //3
//        num = num/10;//123
//        rear = num%10;
//        System.out.println(rear);
//        //2
//        num = num/10;//12
//        rear = num%10;
//        System.out.println(rear);
//        //1
//        num = num/10;//1
//        rear = num%10;
//        System.out.println(rear);

        while (num/10>0){
            num = num/10;//1
            rear = num%10;
            System.out.println(rear);
posted @ 2023-04-15 18:04  tin88eaby  阅读(29)  评论(0)    收藏  举报