首页 > 编程语言 >【参考答案】java基础练习:循环结构(while、do...while、for、break、continue、return直接跳出方法体)

【参考答案】java基础练习:循环结构(while、do...while、for、break、continue、return直接跳出方法体)

时间:2023-01-12 20:22:21浏览次数:63  
标签:do Scanner int System public while com 参考答案 out

while

 while实现:输出比i(i=5)小的正整数

package com.qzcsbj;

public class Test {
    public static void main(String[] args) {
        int i = 5;
        while (--i>0){
            System.out.println(i);
        }
    }
}

 

 

 

求1到100之间所有偶数的和

package com.qzcsbj;

import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <求1到100之间所有偶数的和>
 */
public class Test {
    public static void main(String[] args) {
        int total = 0;
        int m = 1;
        while(m <= 100){
            if(m % 2 == 0){
                total += m;
            }
            m++;
        }
        System.out.println(total);
    }
}

 

 

循环提示用户输入一个非零整数,直接输入数字0为止,然后输出其中的最大值和最小值
package com.qzcsbj;

import java.util.Scanner;

/**
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("请输入非零整数(0表示结束):");
        int n = input.nextInt();
        int max = n, min = n; 

        while (n != 0) {
            System.out.print("请输入非零整数(0表示结束):");
            n = input.nextInt();
            if(n!=0){
                if (n > max) {
                    max = n;
                }
                if (n < min) {
                    min = n;
                }
            }
        }

        System.out.println("最大值:"+max);
        System.out.println("最小值:"+min);
    }
}

  

 

从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序

package com.qzcsbj;

import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int x = 0;
        int y = 0;

        while(true){
            System.out.print("请输入:");
            int b = scanner.nextInt();
            if(b > 0){
                x++;
            }else if(b < 0){
                y++;
            }else{
                break;
            }
        }

        System.out.println("正数: " + x);
        System.out.println("负数: " + y);
    }
}

  

 

 

如果输入的是整数,输出是偶数还是奇数,然后结束;如果输入的不是整数,提示用户重新输入,直到输入整数

package com.qzcsbj;

import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        while (true){
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入整数:");
            if (sc.hasNextInt()){
                int num = sc.nextInt();
                if (num%2==0){
                    System.out.println("你输入的是偶数");
                }else{
                    System.out.println("你输入的是奇数");
                }
                break;
            }else {
                System.out.println("输入有误");
            }
        }
    }
}

 

 

do while

下面输出结果是?说明原因

package com.qzcsbj;

public class Test {
    public static void main(String[] args) {
        int i = 5;
        do {
            System.out.println(i);
            i--;
        }while (i>5);
    }
}

 

先执行do里面的内容,再判断while里的条件

 

打印输出[0,200]之间所有能被7整除,但不能被4整除的所有整数,要求每行打印5个,并统计个数

package com.qzcsbj;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        int i = 0;
        int count = 0;
        do {
            if (i % 7 == 0 && i % 4 != 0) {
                count++;
                System.out.print(i + "\t");
                if (count % 5 == 0) {
                    System.out.println();
                }
            }
            i++;
        } while (i <= 200);
        System.out.println("\n总个数:" + count);
    }
}

 

 

 

for

求1到100之间所有偶数的和

package com.qzcsbj;

import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : 
 */
public class Test {
    public static void main(String[] args) {
        int total = 0;
        for(int m=1;m <= 100;m++){
            if(m % 2 == 0){
                total += m;
            }
        }
        System.out.println(total);
    }
}

 

 

循环输入五门课程的成绩,计算平均分

package com.qzcsbj;

import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int sum = 0;
        for (int j = 1; j <= 5; j++) {
            System.out.print("请输入第" + j + "门课程的成绩:");
            int score = input.nextInt();
            sum += score;
        }
        double avg = sum / 5.0;
        System.out.println("平均分:" + avg);
    }
}

 

 

 

任意输入一个整数,根据这个值输出加法表

package com.qzcsbj;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("请输入任意一个整数:");
        int num = input.nextInt();
        for (int i = 0; i <= num; i++) {
            System.out.println(i + "+" + (num - i) + "=" + num);
        }
    }
}

 

 

打印 1-100000之间的所有素数,并统计耗时,如果耗时大于200ms,就需要优化

(素数: 有且仅有两个正约数的整数. 即 2 ~ i-1 之间没有一个是其约数) 

package com.qzcsbj;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        boolean flag = true;
        long begin = System.currentTimeMillis();
        for(int i = 2; i <= 100000; i++){
            flag = true;
            for(int j = 2; j <= Math.sqrt(i); j++){
                if(i % j == 0){
                    flag = false;
                    break;
                }
            }
            if(flag){
                System.out.println(i);
            }
        }
        long end = System.currentTimeMillis();
        System.out.println("time: " + (end - begin));  // 136
    }
}

 

break

将1-10之间的整数相加,当累加值大于20时停止相加,输出当前整数和累加值

package com.qzcsbj;

import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 10; i++) {
            sum += i;
            if (sum > 20) {
                System.out.println("当前整数:" + i);
                break;
            }
        }
        System.out.println("累加值:" + sum);
    }
}

 

 

continue

输出1到10之间所有的奇数

package com.qzcsbj;

import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if (i % 2 == 0) {
                continue;
            }
            System.out.println(i);
        }
    }
}

 

 

return

下面输出结果是?

package com.qzcsbj;

import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        System.out.println(test());
        test2();
    }
    public static int test(){
        for (int i = 0; i < 5; i++) {
            System.out.println(i);
            if (i==1){
                return i;  // 跳出方法体
            }
        }
        return 10;
    }
    public static void test2(){
        for (int i = 0; i < 5; i++) {
            System.out.println(i);
            if (i==1){
                return ;
            }
        }
        System.out.println("hello");
        return;
    }
}

  

 

双重for循环

实现输出九九乘法表

package com.qzcsbj;

import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    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+" ");
            }
            System.out.println();
        }
    }
}

  

 

 

某次技能大赛,共有3个班参加,每个班有4名学生参加,计算每个班级的平均分(只统计成绩≥80分的学生的平均分)

package com.qzcsbj;

import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        for (int i = 1; i <= 3; i++) {
            double sum = 0;
            int count = 0;
            for (int j = 1; j <= 4; j++) {
                System.out.print("请输入第" + i + "个班级第" + j + "名学生的成绩:");
                int score = input.nextInt();
                if (score < 80) {
                    continue;
                }
                count++;
                sum += score;
            }
            double avg = sum / count;
            System.out.println("第" + i + "个班级的平均分为:" + avg);
        }
    }
}

 

 

打印如下样式的直角三角形 思路:
第一种:递增加1
第二种:递增n*2-1
第三种:递减减1
第四种:递减n*2-1
 

实现 

package com.qzcsbj;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入行数:");
        int rows = input.nextInt();


        for (int i = 1; i <= rows; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();


        for (int i = 1; i <= rows; i++) {
            for (int j = 1; j <= i * 2 - 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();


        for (int i = 1; i <= rows; i++) {
            for (int j = 1; j <= rows - i + 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();


        for (int i = 1; i <= rows; i++) {
            for (int j = 1; j <= (rows - i + 1) * 2 - 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();
    }
}

 

 

打印等腰三角形 

package com.qzcsbj;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("请输入行数:");
        int rows = input.nextInt();

        for(int i=1;i<=rows;i++){
            for(int k=1;k<=rows-i;k++){
                System.out.print(" ");
            }

            for (int j = 1; j <= i * 2 - 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

 

 

打印等边三角形

package com.qzcsbj;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("请输入行数:");
        int rows = input.nextInt();

        for(int i=1;i<=rows;i++){
            for(int k=1;k<=rows-i;k++){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

 

 

输入带*字符串,把*左移输出,其他字母按原顺序输出,例如输入“as*c*gkl**o*p*h*”,输出*******ascgkloph  
package com.qzcsbj.demo;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        System.out.print("请输入带*字符串:");
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        System.out.println("移动前:" + str);
        char[] arr=str.toCharArray();
        for (int i=0;i<arr.length-1;i++){
            for (int j=1;j<=arr.length-1-i;j++){ 
                if (arr[j]=='*' && arr[j-1]!='*'){
                    char temp = arr[j];
                    arr[j] = arr[j-1];
                    arr[j-1] = temp;
                }
            }
            System.out.println("第"+ (i+1) +"轮冒泡:" + Arrays.toString(arr));
        }
        System.out.println(Arrays.toString(arr));
        String s = "";
        for (int i=0;i<arr.length;i++){
            s+=arr[i];
        }
        System.out.println("移动后:" + s);
    }
}

 

 

 

【java百题计划汇总】

详见:https://www.cnblogs.com/uncleyong/p/15828510.html

 

【bak】

原文会持续更新,原文地址:https://www.cnblogs.com/uncleyong/p/17043949.html

 

标签:do,Scanner,int,System,public,while,com,参考答案,out
From: https://www.cnblogs.com/uncleyong/p/17043949.html

相关文章

  • docker swarm 搭建ES集群
    dockerswarm部署ES集群0.环境准备修改系统配置,在所有主机中,编辑/etc/sysctl.conf,追加以下内容:vm.max_map_count=262144保存后,执行sysctl-p1.docker-compose文......
  • MarkDown语法
    什么是是MarkDown?MarkDown是一种纯文本格式的标记语言,与我们写的普通的txt,word文档是一样的。不过,MarkDown有一些简单的标记可以使普通的文本具有一定的格式。1.标题......
  • Windows Server 2008 R2安装Sqlserver 2008的步骤和设置跨网远程访问SQL server​
    WindowsServer2008R2安装Sqlserver2008的步骤和设置跨网远程访问SQLserver最近学习sql数据库,所以捣鼓一下安装sqlserver数据库的教程;​安装SQLServer2008R2需要.NE......
  • Markdown学习
    Markdown学习应用typro学习标题加空格几个井号就是几级标题字体两边两个星号,粗体两边一个星号,斜体两边三个星,加粗加斜体两边四个星,无效果两边波浪号,删除线引用......
  • 02常见的Dos命令
    常用的DOS命令不区分大小写,鼠标右键是粘贴盘符切换  盘名:(英文状态下的冒号)查看当前目录下所有文件  dir   切换盘符  cd/d盘符:......
  • kafka(kraft模式)3.*集群容器部署 docker-compose
    一、创建yml文件要修改部分1.修改宿主机ipKAFKA_CFG_ADVERTISED_LISTENERS2.修改挂载路径version:"3.6"services:kafka1:container_name:kafka1image:......
  • Windows中sqlmap搭建(问题)和使用
    sqlmap搭建本次是win11和python11注意:SQLmap使用python写的,所以需要提前搭建好python环境.点击​​https://sqlmap.org/​​进入SQLmap的官网.点击下载压缩包,......
  • windows 安装superset
    安装过程新建虚拟环境:condacreate-nsupersetpython=3.7激活虚拟环境:condaactivatesuperset-安装superset:pipinstallapache-superset-i[https://pypi.douba......
  • centos7.9 安装ddddocr验证码识别模块
    正常安装pipinstallddddocr 但是因为会使用国外源,很慢,所以我们使用国内源 首先先安装opencv-python-headless注意要使用小于4.3版本的,否则按照不上,windows忽略这一......
  • 02_Dos基本操作
    Dos基本操作打开CMD的方法开始+系统+命令提示符win+R输入cmd在任意的文件夹下面按住shift+鼠标右键点击在此处打开命令窗口管理员身份运行:开始+系统+命令提示符选择......