JAVASE 小白学习笔记(3-2)流程控制中循环练习题

1.求1-100的和

package test.disanzhang2;
public class Test1 {
    
    
    public static void main(String[] args) {
    
    
        int sum=0;
        /*for循环结构语法结构:
        for(初始表达式1;循环条件表达式2;迭代表达式3){
               循环体语句
               }
         执行流程:1.执行初始化表示式1
                  2.判断循环条件表达式2
                  3.如果条件成立,执行循环体语句块
                  4.执行迭代表达式3
         */
        for(int i=0;i<=100;i++){
    
    
            sum+=i;
        }
        System.out.println("1-100的和为:"+sum);

    }
}

输出的结果为:

1-100的和为:5050

2.打印1-100偶数的和
方法一:

package test.disanzhang2;
public class Test2 {
    
    
    public static void main(String[] args) {
    
    
        int ousum=0;
        //这里可以从i=0开始,每次对i进行递加2,然后输出偶数的和
        for(int i=0;i<=100;i+=2){
    
    
            ousum+=i;
        }
        System.out.println("1-100的偶数和为:"+ousum);
    }
}

方法二:

package test.disanzhang2;

public class Test22 {
    
    
    public static void main(String[] args) {
    
    
        int sum=0;
        //通过for循环中嵌套if条件判断语句,判断数是否是偶数,如果是偶数进行相加
        for(int i=0;i<=100;i++){
    
    
            if(i%2==0){
    
    
                sum+=i;
            }
        }
        System.out.println("1-100的偶数和为:"+sum);
    }
}

输出的结果为:

1-100的偶数和为:2550

3.从键盘上输入整数,输入0结束,统计输入的整数、负数的个数

package test.disanzhang2;
import java.util.Scanner;
public class Test3 {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc=new Scanner(System.in);

        int numzheng=0;
        int numfu=0;
        /*while循环的语法结构:
        while(条件表达式){
        循环条件语句块
        }
        执行流程:
        1.先判断循环条件
        2.条件成立,执行循环语句块
        3.回到1
        4.直到条件不成立,结束while循环
         */
        /*while语句要注意的是当条件为true时,里面肯定要写
        break语句,否则会发生陷入死循环的现象。在本题中我们
        可以知道是当输入的数字为0时,此循环是结束的。
         */
        while(true) {
    
    
            System.out.println("请输入整数:");
            int num = sc.nextInt();
            if (num == 0) {
    
    
                System.out.println("结束");
                break;//此break要注意,不能丢失,否则陷入死循环
            } else if (num > 0) {
    
    
                numzheng++;
            } else if (num < 0) {
    
    
                numfu++;
            }
        }
        System.out.println("正数的个数为:"+numzheng+"负数的个数为:"+numfu);
        
    }
}

输出的结果为:

请输入整数:
5
请输入整数:
-1
请输入整数:
6
请输入整数:
-21
请输入整数:
0
结束
正数的个数为:2负数的个数为:2

4.随机生成一个100以内的数,猜数字游戏。从键盘上输入数,如果大了会提示大了,如果小了会提示小了,如果对了就不要再猜了,并统计猜了多少次。

package test.disanzhang2;
//导入产生随机数的包
import java.util.Random;
import java.util.Scanner;
public class Test4 {
    
    
    public static void main(String[] args) {
    
    
        int i = 0;
        //创建随机数的对象
        Random rand = new Random();
        //利用对象获取数据格式
        int num = rand.nextInt(100);
        System.out.println("随机数为:" + num);

        Scanner sc = new Scanner(System.in);
       int guess=0;
       /*do...while循环语句的语法结构:
       do{
       循环体语句块
       }whie(条件表达式);
       执行过程:
       1.先条件执行一次循环体语句块
       2.再判断循环条件
       3.条件成立,再次执行循环体语句块
       4.回到2
       5.直到条件不成立,结束do...while循环
       注意:执行一次循环体后,再判断条件,继续下一次循环体,
       因此do...while循环至少执行一次循环体 */

        do {
    
    
            System.out.println("请输入用户猜的数:");
             guess=sc.nextInt();
            System.out.println("猜的数为:" + guess);
            i++;

            if (guess > num) {
    
    
                System.out.println("猜大了");
            } else if (guess < num) {
    
    
                System.out.println("猜小了");
            } else {
    
    
                System.out.println("猜对了");
            }
        } while (guess!= num);

                System.out.println("猜了" + i + "次才猜对");
}
    }

输出的结果为:

随机数为:22
请输入用户猜的数:
50
猜的数为:50
猜大了
请输入用户猜的数:
20
猜的数为:20
猜小了
请输入用户猜的数:
21
猜的数为:21
猜小了
请输入用户猜的数:
22
猜的数为:22
猜对了
猜了4次才猜对

5.输出所有水仙花数,所谓水仙花数是指3位数,其各个位上数字的立方和等于其本身。

package test.disanzhang2;

public class Test5 {
    
    
    public static void main(String[] args) {
    
    
        //定义水仙花数的变量
        int count=0;
        for(int num=100;num<1000;num++){
    
    
            //提取水仙花数的个,十,百位
            int bai=num/100;
            int shi=(num/10)%10;
            int ge=num%10;
            //如果满足各个位上数字平方和等于它本身,则为水仙花数
            if(num==bai*bai*bai+shi*shi*shi+ge*ge*ge){
    
    
                System.out.println("水仙花为:"+num);
                count++;
            }

        }
        System.out.println("水仙花数有"+count+"个");
        }
    }

输出的结果为:

水仙花为:153
水仙花为:370
水仙花为:371
水仙花为:407
水仙花数有4

6.编写程序,从1循环到30且在每行打印一个值,另外在每个3的倍数行数上打印出"foo",在每行3的倍数行上打印出"biz",在每个7的倍数行上打印输出为"baz"。

package test.disanzhang2;

public class Test6 {
    
    
    public static void main(String[] args) {
    
    
        //利用for循环来遍历1-30
        for(int i=1;i<=30;i++){
    
    
            //for循环内层嵌套if-else if-else条件判断进行条件选择判断
            if(i%3==0){
    
    
                System.out.println("foo");
            }
            else if(i%5==0){
    
    
                System.out.println("biz");
            }
            else if(i%7==0){
    
    
                System.out.println("baz");
            }
            else{
    
    
                System.out.println(i);
            }
        }
    }
}

输出结果为:

1
2
foo
4
biz
foo
baz
8
foo
biz
11
foo
13
baz
foo
16
17
foo
19
biz
foo
22
23
foo
biz
26
foo
baz
29
foo

7.打印九九乘法表

package test.disanzhang2;

public class Test7 {
    
    
    public static void main(String[] args) {
    
    
        //打印九九乘法表
        for(int i=1;i<=9;i++){
    
    
            for(int j=1;j<=i;j++){
    
    
                System.out.print(j+"*"+i+"="+(i*j)+"\t");
            }
            System.out.println();
        }

    }
}

输出的结果为:

1*1=1 
1*2=2 2*2=4 
1*3=3 2*3=6 3*3=9 
1*4=4 2*4=8 3*4=12 4*4=16 
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 

8.打印1-30间数,其中3,5,7的倍数不打印(本题用continue来做)

package test.disanzhang2;

public class Test8 {
    
    
    public static void main(String[] args){
    
    
        //利用for循环遍历1-30数字
        for(int i=1;i<=30;i++){
    
    
            //continue只能用于循环中,提前结束本次循环,继续下一次循环
           if(i%3==0){
    
    
               continue;
           }
           else if(i%5==0){
    
    
               continue;
           }
           else if(i%7==0){
    
    
               continue;
           }
            System.out.println(i);
        }

    }
}

输出的结果为:

1
2
4
8
11
13
16
17
19
22
23
26
29

猜你喜欢

转载自blog.csdn.net/qq_41537102/article/details/109676961