while循环题解

 //求1+2+3+...+100
class Demo01{
    public static void main(String[] args) {
        sum=0; //用于存放最后的结果
        i=1;  //从1开始
        while(i<=100){ //i小于等于100是否为真
            sum+=i;   //为真,加i
            i++;      //i加1 
        }
        System.out.println(sum); //不为真,打印结果
    }
}
/*
猜电脑的随机生成的数字
*/
import java.util.*;
class Demon02{
    public static void main(String[] args) {

        Scanner scanner=new Scanner(System.in);
        int com=new Random().nextInt(101);//[0,n)  //电脑随机生成1-100之间一个数
       
        while(true){     //无条件开启死循环,因为没有初始条件,也不知道什么时候结束
            System.out.print("Guess a number:");   //提示用户输入一个数
            int num=scanner.nextInt();  //接受用户输入
            if(num>com){    //如果用户猜测的数字大于随机数,提示数字太大
                System.out.println("too high");  
            }else if (com==num){  //如果用户猜测的数字等于随机数,提示正确
                System.out.println("yes,you are right!");                
                break;
            }else{    //如果用户猜测的数字小于随机数,提示数字太小
                System.out.println("too low");
            }
        }
    }
}

/* 哨兵法  */
import java.util.Scanner;
class Demon03{
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个数字:"); 
        int number=scanner.nextInt();
        while(true){     //无条件先进入循环
            boolean flag=true;  //定义一个“哨兵”
            for(int i=2;i<number;i++){  //进入for循环
                if(number%i==0){  只要i是number的因子
                    System.out.print(i+",");  //打印i
                    number=number/i;  //将商给number继续查找因子
                    flag=false; //将“哨兵”值改变
                    break;   //跳出当前循环
                }
            }
            if(flag){  //当循环时是正常结束,则不会改变flag的值,判断值是否被改变
                System.out.print(number+"。");  //没有改变打印最后一个因子
                break; //跳出死循环
            }
        }
    }
}

import java.util.*;
class Demon04{
    public static void main(String[] args) {
        String[] arr={"剪刀","石头","布"};  //定义一个数组用来存放出现的类型
        Scanner scanner=new Scanner(System.in);
        Random random=new Random(); 
        int usrCount=0;  //用户赢的次数
        int comCount=0;  //电脑赢的次数
        // 规定剪刀0 石头1 布2
        while(true){  //先进入循环
            //用户输入一个
            System.out.print("请输入 剪刀0 石头1 布2:");
            int usr;
            try{
                usr=scanner.nextInt();  //IO流阻塞
            }catch(java.util.InputMismatchException e){
                System.out.println("输入错误,请重新输入");
                scanner=new Scanner(System.in);
                continue;    //跳到下一次循环
            }
            if(usr<0||usr>2){ //如果用户没有输入剪刀、石头、布任何一个
                System.out.println("输入错误,请重新输入");
                continue;    //跳到下一次循环
            }
            //电脑随机生成一个
            int com=random.nextInt(3);  //[0,3)
            if(usr==com){    //平局
                System.out.println("玩家是"+arr[usr]+",电脑是"+arr[com]+",平局!");
            }else if(usr-com==1||usr-com==-2){    //玩家赢
                System.out.println("玩家是"+arr[usr]+",电脑是"+arr[com]+",玩家赢!");
                usrCount++;
            }else{   //电脑赢
                System.out.println("玩家是"+arr[usr]+",电脑是"+arr[com]+",电脑赢!");
                comCount++;
            }
            if(usrCount==2 || comCount==2){ //只要任何一方赢了两次
                break; //死循环结束
            }
        }
        if(usrCount==2){  //打印最终结果
            System.out.println("最终,玩家赢!");
        }else{
            System.out.println("最终,电脑赢!");
        }
    }
}

import java.util.Scanner;
class Demon05{
    public static void main(String[] args){
        //输入一个十进制整数
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个数字:");
        int number=scanner.nextInt();
      
        String str=""; //存放计算的结果
        while(true){   //无条件进入循环
            int rest=number%16; //先将输入的数模16
            if(rest<10){  //余数小于10
                str=rest+str; //直接将余数加结果,将第一的计算的值放在第一位
            }else{ 
                str=(char)(55+rest)+str;  //余数大于10,将对应的ASCII码转化为字符,不懂的可以去看一下ASCII码表
            }
            number=number/16; //将number变成模16的商
            if(number==0){ //此时商为0
                break;  //数字已转化完,跳出死循环
            }
        }
        System.out.println(str);

    }
}

import java.util.Scanner;
class Demon06{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.print("Enter number:");       
        int max=0; //保存输入最大的数
        int count=0;  //保存最大数被输入了次数
        while(true){ // 先进入循环
            int num=scanner.nextInt(); //接受输入
            if(num==0){  //接受的输入为0
                break;  //结束死循环
            } 
            if(num>max){   //输入的数字不为0,且大于当前最大的数
                max=num;   //保存最大数
                count=1;    //计数器加1
            }else if(num==max){   //如果与当前数最大数相等
                count++;   //计数器加1
            }
        }
        System.out.println(max+"的次数为"+count);  //最后打印结果
    }
}

 

发布了34 篇原创文章 · 获赞 24 · 访问量 1936
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章