后端归纳及问题解决2

知识点

while语句,do_While语句

  1. 用while循环语句实现,打印出20个3的倍数的和

    public class WhileDemo1 {
        public static void main(String[] args) {
            int i = 3,sum = 0,count = 0;
            while (count<=20){
                i += 3;
              // 3的倍数
               sum += i;
              //求和
                count++;
                //统计数
            }
            System.out.println(sum);
        }
    }

  2. 用do_while循环语句实现,打印出3的倍数,如果这个数是7的倍数则结束程序。

public class DoWhileDemo1 {
    public static void main(String[] args) {
        int i = 0;
        do {
            if (i % 3 == 0) {
                System.out.println(i);
                //打印3的倍数
            } i++;
        } while (i % 7 != 0);//若为7的倍数则结束程序
    }
}

do_while循环语句实现,打印出3的倍数,如果这个数是7的倍数则结束程序

  1. 用while循环语句实现,打印出0-100,不包括7或者3的倍数

    public class WhileDemo2 {
        public static void main(String[] args) {
            int i = 0;
            while (i<100){
                i ++;
    //使用if语句,将“不为3的倍数”和“不为7的倍数”作为判断条件
               if((i%3 != 0) & (i%7 != 0)){
                   System.out.println(i);
               }
            }
        }
    }

  2. 使用do-while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,即每隔20摄氏度需要对华氏温度进行计算,从0摄氏度开始,并且对照表中的条目不超过10条。

    转换关系:华氏温度= 摄氏温度*9 / 5.0 + 32

import java.util.Scanner;
public class DoWhileDemo2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入摄氏温度:");
        double temperature = sc.nextDouble();
​
        do {
            double f = temperature*9 / 5.0 + 32;
                System.out.println(temperature+"摄氏度(℃)转化成华氏温度是(°F):"+f);
                //温度依次+20
            temperature += 20;
        } while (temperature >250);//若为温度大于250摄氏度则结束程序
    }
}

综合练习

循环,嵌套循环

  1. 循环结构是如何最后退出循环的,有哪些不同的情况请说明。

循环条件返回false 在循环体内,一旦执行到break,跳出循环

2.指出如下程序输出的结果::

label: for (int i = 1; i <= 4; i++) {
            for (int j = 1; j <= 10; j++) {
                if (j % 4 == 0) {
                    continue label;
                }
                System.out.print(j);
            }
            System.out.println();
}

输出结果为:123123123123

  1. 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3。编程 找出1000以内的所有完数。(因子:除去这个数本身的其它约数)

public class Demo4 {
    public static void main(String[] args) {
        for (int i = 1; i <= 1000; i++) {
            int sum = 0;//完数初始化
            for (int j = 1; j < i; j++) {
                if (i % j == 0)//找到完数因数并相加
                {
                    sum += j;
                }
            }
            if (i == sum) {
                System.out.println(i);
            }
        }
​
    }
}

  1. 说明break和continue使用上的相同点和不同点

break与continue都可以中断循环;

但continue是结束当前循环进入下一循环,不跳出循环体。

break是结束循环并跳出循环体。

  1. 输入高度,输出直角三角形。如:输入5, 将输出如下图形

    #
    ##
    ###
    ####
    #####
import java.util.Scanner;
        // 1.导包
//输入高度,输出直角三角形。如:输入5, 将输出如下图形
public class Demo5 {
    public static void main(String[] args) {
        // 2.创建键盘录入对象
        Scanner sc = new Scanner(System.in);
//给定一个年份
        System.out.println("请输入你要的高度:");
        int n = sc.nextInt();
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= i; j++) {
                System.out.print("#");
            }
            System.out.println();
        }
        }
    }

  1. 输入高度,输出倒直角三角形。如:输入6, 将输出如下图形

    ******
    *****
    ****    
    *** 
    **  
    *
  2. for (int i = 1; i <= n; i++) {
    //            第一个for控制*高度,有几行
                for (int j = n - i; j >= 0; j--) {
    //第二个for控制每一行*个数,每一行有几个*,
    // 其中int j的初始值n-i为最多的那一行星星个数,

                    System.out.print("*");
                }
                System.out.println();
            }
import java.util.Scanner;
//输入高度,输出倒直角三角形
public class Demo6 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int n = sc.nextInt();
        for (int i = 1; i <= n; i++) {
//            第一个for控制*高度,有几行
            for (int j = n - i; j >= 0; j--) {
//第二个for控制每一行*个数,每一行有几个*,
// 其中int j的初始值n-i为最多的那一行星星个数,
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

  1. 执行如下代码后,i的值是多少?

    public static void main(String[] args) {
            int i=10;
            while(i>0){
                i = i +1;
                if(i==10){
                    break;
                }
            }
            System.out.println("i=" + i);
        }
    ​

i=-2147483648

  1. 打印1-100之间非13的倍数,使用continue语句

//1. 打印1-100之间非13的倍数,使用continue语句
public class Demo8 {
    public static void main(String[] args) {
        //打印1-100之间非13的倍数,使用continue语句
        for(int i=1;i<=100;i++){
            if(i%13==0){
                continue;//13倍数跳出当前循环
            }else{
                System.out.println(i);//写出非13倍数
            }
        }
    }
}

  1. 打印自然数的个数

    1)打印1~100之间 6的倍数的个数

    public class Demo9 {
        public static void main(String[] args) {
    //        定义个数count
            int count = 0;
            //打印1-100之间6的倍数
            for (int i = 1; i <= 100; i++) {
                if (i % 6 == 0) {
                    count++;  //6的倍数统计一次
                }
            }
            System.out.println("1~100之间 6的倍数的个数为"+count);
        }
    }

    1~100之间 6的倍数的个数为16

    2)求出1~100之间,既是3又是7的倍数的自然数出现的次数?

//求出1~100之间,既是3又是7的倍数的自然数出现的次数?
public class Demo10 {
    public static void main(String[] args) {
//        定义个数count
        int count = 0;
        //打印1-100之间既是3又是7的倍数的自然数
        for (int i = 1; i <= 100; i++) {
            if (i % 3 == 0 & i % 7 == 0) {
                count++;  //每打印依次统计次数+1
                System.out.println(i);
            }
        }
        System.out.println("1~100之间既是3又是7的倍数的自然数个数为"+count);
    }
}

  1. 打印如下的图形:菱形1

        * 
       * * 
      * * * 
     * * * * 
    * * * * * 
     * * * * 
      * * * 
       * * 
        * 
    ​
import java.util.Scanner;
//打印如下的图形:菱形1
public class Demo11 {
    public static void main(String[] args) {
        //打印星星
        System.out.println("请输入需要的行数");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        //打印上半部分
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 2 * n; j++) {
                if (j < n - i)
                    System.out.print(" ");
                if (j >= n - i && j <= n + i)
                    System.out.print("*");
            }
            System.out.println();
        }
        //打印下半部分
        for (int i = 1; i < n; i++) {
            System.out.print(" ");
            for (int j = 0; j < 2 * n - i; j++) {
                if (j < i)
                    System.out.print(" ");
                if (j >= i && j < 2 * n - i - 1)
                    System.out.print("*");
            }
            System.out.println();
        }
​
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值