遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

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

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("输入有误");
            }
        }
    }
}

 

 

死循环

第二次、第三次、第n次循环hasNextInt()这个方法接收的都是你第一次输入的字符,所以只要第一次输错,就会直接死循环

package com.qzcsbj;

import java.util.Scanner;

/**
 * @description : <描述>
 */
public class Test {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true){
            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("输入有误");
            }
        }
    }
}

 

修改方案

package com.qzcsbj;

import java.util.Scanner;

/**
 * @description : <描述>
 */
public class Test {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = "";
        while (true){
            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("输入有误");
                s = sc.next();
            }
        }
    }
}

 

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

 

posted @ 2023-01-12 20:20  全栈测试笔记  阅读(447)  评论(1编辑  收藏  举报
浏览器标题切换
浏览器标题切换end