首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java硬件帮助。用户输入偶数值的循环

Java硬件帮助。用户输入偶数值的循环
EN

Stack Overflow用户
提问于 2019-03-13 06:09:01
回答 1查看 153关注 0票数 -1

我必须编写一个主程序,要求用户输入一个介于10和20之间的数字,然后打印该数字和50之间的偶数。如果数字不在10和20范围内(包括10和20),程序将不断提示用户输入有效的数字。

到目前为止,这就是我所拥有的

代码语言:javascript
复制
package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // write your code here
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Please choose a number between 10 and 20!  ");
        int number = keyboard.nextInt();
        int newnumber = number;

        while (number <= 10 || number >= 20) {
            System.out.print("No, between 10 and 20: ");
            System.out.println("Please choose a number between 10 and 20!  ");
            number = keyboard.nextInt();

        }
        while (number >= 10 || number <= 20) {
            int limit = 50;
            for (int i= 10; newnumber <= 50; i++) {
                if (i% 2 == 0) {
                    System.out.println(newnumber);
                    newnumber=newnumber+2;

                }
            }
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2019-03-13 06:30:35

与您的问题无关,但是您的第一个while循环将阻止用户输入10或20,因为while循环不断检查输入是否等于这两个值。

第二个while循环没有做太多事情,作为if语句会更有意义-如果您还没有在第一个while循环中验证它在范围内的话。

现在您的实际问题是,您以i启动计数器,但递增newnumber。即使您递增i,它仍然不会对赔率起作用,因为您的起始数是奇数,并且递增2。

除非number是奇数,否则每次迭代都会将循环计数器number+1

  • increment 1

使用第一个选项

代码语言:javascript
复制
while (number < 10 || number > 20) {
    System.out.print("No, between 10 and 20: ");
    System.out.println("Please choose a number between 10 and 20!  ");
    number = keyboard.nextInt();
}

for (int i = (number % 2 == 0 ? number : number+1); i <= 50; i+=2) {
    System.out.println(newnumber);
}

请注意,我不再检查每个迭代是否为偶数,因为我确保从偶数开始,并以2为增量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55131388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档