【问题标题】:Java Programming LoopingJava 编程循环
【发布时间】:2016-12-27 22:19:20
【问题描述】:

编写一个java程序,提示用户输入用户名和4个数字,读取它们,然后打印用户输入的所有数字中的最小和最大。如果最大数大于或等于 10,程序将继续循环。最后,程序将显示程序循环了多少次。我如何循环并找到程序循环了多少次?

import java.io.*;
import java.util.*;

class largestLoop
{   
public static void main(String [] args) throws IOException
{
    String name;
    int[] num = new int[4]; // save 4 number in array
    int smallest = num[0], largest = num[0];

    do{
    BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Enter your name : ");
    name = stdin.readLine();
    System.out.println(name + ", Please enter 4 numbers");

    // Read for number using for loop
    Scanner inData = new Scanner(System.in);
    for(int i = 0; i < num.length; i++)
    {
        System.out.print("Enter " + (i+1) + " : "); // value i will + 1 
        num[i] = inData.nextInt();
    }

    // Find larger and smallest 
    for (int i : num) 
    {
        if (i < smallest) 
        {
            smallest = i;
        } // end finding smallest
        else if (i > largest) 
        {
            largest = i;
        } // end finding largest number 
    } // end finding largest and smallest values
    System.out.println("Largest = " + largest);
    System.out.println("Smallest = " + smallest);
}while(largest >= 10);
}
}

输出:
输入您的姓名:测试
测试,请输入4个数字
输入 1 : 2
输入 2 : 6
输入 3 : -5
输入 4 : 16
最大:16
最小 : 0
输入您的姓名:谷歌
google, 请输入 4 个数字
输入 1 : 5
输入 2 : 8
输入 3 : 1
输入 4 : 6
最大:16
最小 : 0
输入您的姓名:....

程序变成无限循环。每当用户输入小于或等于 10 的数字时,它应该停止。当用户在下一个循环数中输入

【问题讨论】:

  • 您可以使用“while”循环,即 while(largest >= 10) { ... } 并在那里增加一个计数器。
  • 欢迎来到 StackOverflow。请首先访问help center,获取tour 并阅读How to Ask,以了解如何有效地使用本网站。您是否在 IDE 调试器中单步执行了代码?如果不这样做,先看看你是否能找到问题。
  • 要计算循环的次数,您可以添加一个 int 变量,该变量在每次读取值时递增。
  • @Peter Lawrey:来自问题:“如果最大数字大于或等于 10,程序将继续循环。最后,程序将显示程序循环了多少次。”这听起来像是在计算读取四个值并相互比较的循环数。在读取一个值来完成此操作后,您不会增加计数器。

标签: java loops


【解决方案1】:

首先分配:

int smallest = num[0], largest = num[0];

本质上不是动态的。这意味着最小和最大的值不会在每次 num[0] 的值发生变化时发生变化。每次输入新值时,您都需要手动执行此操作。

其次,您没有使用任何变量来实际计算循环次数。

进行这些更改,您的代码应如下所示:

package com.abhinav.testing;

import java.io.*;
import java.util.*;

class largestLoop
{   
public static void main(String [] args) throws IOException
{
    String name;
    int[] num = new int[4]; // save 4 number in array
    int smallest=0,largest=0;
    int count=0;
    do{
        count++;
        BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter your name : ");
        name = stdin.readLine();
        System.out.println(name + ", Please enter 4 numbers");

        // Read for number using for loop
        Scanner inData = new Scanner(System.in);
        for(int i = 0; i < num.length; i++)
        {
            System.out.print("Enter " + (i+1) + " : "); // value i will + 1 
            num[i] = inData.nextInt();
        }
        smallest = num[0];
        largest = num[0];
        // Find larger and smallest 
        for (int i : num) 
        {
            if (i < smallest) 
            {
                smallest = i;
            } // end finding smallest
            else if (i > largest) 
            {
                largest = i;
            } // end finding largest number 
        } // end finding largest and smallest values
        System.out.println("Largest = " + largest);
        System.out.println("Smallest = " + smallest);
    }while(largest >= 10);
    System.out.println("Number of times the loop ran= "+count);
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多