栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础--while入门小练习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础--while入门小练习

文章目录

练习一练习二练习三练习四练习五练习六练习七练习八练习九练习十

练习一
package whileDemo;

public class Test1 {
    public static void main(String[] args) {
        //循环结构-->让计算机反复执行相同的代码
        

        
        int i=1; //初始变量
        while(i<=100){ //循环条件
            System.out.println(i); //循环要执行的功能
            i++; //初始变量的变化方式
        }
        System.out.println("输出完毕");
    }
}

练习二
package whileDemo;

public class Test2 {
    public static void main(String[] args) {
        
        int i=1;
        while(i<=100){ //遍历1~100所有数
            if(i%2==0){ //如果是偶数就输出
                System.out.println(i);
            }
            i++;
        }
    }
}

还有一种简洁的方法。

package whileDemo;

public class Test3 {
    public static void main(String[] args) {
        
        int i=2;
        while(i<=100){ //遍历1~100所有数
            System.out.println(i);
            i+=2;
        }
    }
}
练习三
package whileDemo;

public class Test4 {
    public static void main(String[] args) {
        
        int i=1;
        int sum=0;
        while(i<=100){
            if(i%2 !=0){
                //System.out.println(i);
                sum+=i;
            }
            i++;
        }
        System.out.println(sum);
    }
}

执行结果:

练习四
package whileDemo;

public class Test6 {
    public static void main(String[] args) {
        
        int i=1;
        while(i<=100){
            if(i%5==0){
                System.out.print(i+" "); //print后面加上ln就是换行的意思,不加就不换行
                //因为数字之间要有间隔,所以给i加上一个空格字符串
                if(i%3==0){ //判断,如果能被3整除(3个一组)的时候,说明要换行了
                    System.out.println(); //println里面什么也不写,相当于换行
                }
            }
            i++;
        }
    }
}

在统计换行的时候还有一种方法。

package whileDemo;

public class Test7 {
    public static void main(String[] args) {
        
        int i=1;
        int j=0; //用j来统计5的倍数的个数
        while(i<=100){
            if(i%5==0){
                System.out.print(i+" ");
                j++;
                if(j%3==0){ //如果j是3的倍数,就换行
                    System.out.println();
                }
            }
            i++;
        }
       // System.out.println(j); //可以自行输出j来查看有多少个5的倍数。
    }
}

执行结果:

注意,这个if需要写在上一个if的里面。

如果写在外面,

输出结果就是这样的,会有很多空行。

❓ 为啥呢?

如果写在外面,不论这个数是不是5的倍数,只要这个数的位置是3的倍数,就会空行。

比如,6这个数字,不是5的倍数,但是它的位置序号(j)是6,是3的倍数,根据我们写的代码,是需要换行的。

这样就会多出很多空行!

应该把换行的if语句,写在判断是否为5的倍数的if语句里面。只用于对5的倍数的数生效即可。

练习五
package whileDemo;
import java.util.Scanner;
public class Test5 {
    public static void main(String[] args) {
        
        Scanner input=new Scanner(System.in);
        System.out.println("请输入任意整数:");
        int num=input.nextInt(); //123456
        System.out.println(num%10); //6
        num /=10;
        System.out.println(num%10); //5
        num /=10;
        System.out.println(num%10); //4
        num /=10;
        System.out.println(num%10); //3
        num /=10;
        System.out.println(num%10); //2
        num /=10;
        System.out.println(num%10); //1
    }
}

如果输入的数是123456,那么就按照上面的代码,可以执行完毕。

执行结果:

我们可以看到,这两行代码重复出现。

 num /=10;
 System.out.prntln(num%10); 

那我们可以用一个循环结构来完成。

package whileDemo;

import java.util.Scanner;

public class Test8 {
    public static void main(String[] args) {
        
        Scanner input=new Scanner(System.in);
        System.out.println("请输入任意整数:");
        int num=input.nextInt(); //123456
        while(num!=0){
            System.out.print(num%10);
            num/=10;
        }
    }
}

执行结果:

练习六
package whileDemo;
import java.util.Scanner;
public class Test9 {
    public static void main(String[] args) {
        
        //水仙花数  153--> 1^3+5^3+3^3=153
        //三位数每一位三次方的和加起来等于它本身,就是水仙花数
        System.out.println("请输入一个三位数");
        Scanner input=new Scanner(System.in);
        int i=input.nextInt();
        int g=i%10; //个位
        int s=i/10%10; //十位
        int b=i/100; //百位
        if(g*g*g+s*s*s+b*b*b==i){
            System.out.println(i);
        }
    }
}
练习七
package whileDemo;

public class Test10 {
    public static void main(String[] args) {
        
        int i=100;
        while(i<1000){
            int g=i%10;
            int s=i/10%10;
            int b=i/100;
            if(g*g*g+s*s*s+b*b*b==i){
                System.out.println(i);
            }
            i++;
        }
    }
}

结果:

练习八
package whileDemo;
import java.util.Scanner;
public class Test11 {
    public static void main(String[] args) {
        
        
        Scanner input=new Scanner(System.in);
        System.out.println("请输入考试科目数");
        int project=input.nextInt();
        int i=1;
        int sum=0; //用于统计总分
        int max=0; //用于统计最大值,总分为0~100,最高分不会低于0
        int min=100; //用于统计最小值,总分为0~100,最低分不会高于100
        while(i<=project){ //循环i次
            System.out.println("请输入第"+i+"科分数");
            int score=input.nextInt();
            sum+=score;
            //判断最大值
            if(score>max){
                max=score;
            }
            //判断最小值
            if(score 

结果:

练习九
package whileDemo;
import java.util.Scanner;
public class Test12 {
    public static void main(String[] args) {
        
        //素数:3 5 7 11...  只能被自己和1整除的数字
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个整数");
        int i=sc.nextInt(); //比如15
        // 看一下这个数能不能只能整除1或15
        //我们可以让这个数先从2开始,若不能整除,再让这个数除3、4……14。若和其中的任意一个数取余是0,就说明除开了,这个数不是素数。
        int num=2;
        while(num 

假如我们输入13,则输出结果:

我们可以看到,输出的结果并不是想要的。

只需要输出一个就可以了。

☀️解决办法:

不要在循环中做输出了,在循环中做标记。

package whileDemo;
import java.util.Scanner;
public class Test12 {
    public static void main(String[] args) {
        
        //素数:3 5 7 11...  只能被自己和1整除的数字
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个整数");
        int i=sc.nextInt(); //比如15
        // 看一下这个数能不能只能整除1或15
        //我们可以让这个数先从2开始,若不能整除,再让这个数除3、4……14。若和其中的任意一个数取余是0,就说明除开了,这个数不是素数。
        int num=2;
        
        boolean flag=true;
        while(num 

假如输入的值还是13,再次查看结果:

练习十
package whileDemo;

public class Test13 {
    public static void main(String[] args) {
        
        int i=1;
        while(i<=100){
            //是素数,就输出
            int num=2;
            boolean flag=true;
            while(num 

输出结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759924.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号