Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的Java程序有问题_Java - Fatal编程技术网

我的Java程序有问题

我的Java程序有问题,java,Java,该程序的要点是“编写一个程序,提示用户输入2到10之间的整数,并打印出1到100之间的所有整数,但用户输入的数字的整数倍数除外(modulois有用)。 例如,如果用户输入9,您的程序应该打印出1到100之间的所有数字,但程序1打印的数字除外。“我遇到的问题是,程序打印的数字与我想要的完全相反!打印输入的数字的所有倍数:( 我是一名学生,因此欢迎提供建议和帮助,但最重要的是,我想学习如何思考如何解决该计划,以便在未来帮助我。谢谢大家:) 代码: import java.util.Scanner;

该程序的要点是“编写一个程序,提示用户输入2到10之间的整数,并打印出1到100之间的所有整数,但用户输入的数字的整数倍数除外(modulois有用)。 例如,如果用户输入9,您的程序应该打印出1到100之间的所有数字,但程序1打印的数字除外。“我遇到的问题是,程序打印的数字与我想要的完全相反!打印输入的数字的所有倍数:( 我是一名学生,因此欢迎提供建议和帮助,但最重要的是,我想学习如何思考如何解决该计划,以便在未来帮助我。谢谢大家:)

代码:

import java.util.Scanner;
公共课程二
/*
* 
*/
{
公共静态void main(字符串[]args)
{
System.out.println(“输入您想要使用的号码:”);
扫描仪sc=新的扫描仪(System.in);
int=sc.nextInt();

对于(int i=eviltwinNumb;i您以输入的数字开始循环,并且在每一步中按该数字递增i,并且您的条件没有任何区别(这永远不会是真的)。这就是为什么您的代码精确打印您不希望打印的数字(eviltwinNumb,2*eviltwinNumb,3*eviltwinNumb,…)

您应该在每个步骤中仅将i增加1,并且仅当
(i%evitwinnumb!=0)
尝试时才打印它

for(int i=1; i<=100; i++)  // loop from 1 to 100
{
    if(i%eviltwinNumb != 0 )  // if not an exact multiple of eviltwinNumb 
    {
        System.out.println(i);  // print it
    }
}

用于(int i=1;i首先,我将解释它不起作用的原因。循环开始时,将
i
设置为输入的数字,并且在循环中的每次迭代中,您都使用
i+=evitwinnumb
按所选数字递增
i
。因此,您只考虑给定数字的倍数。此外,您的if语句将l永远不会触发,因为所有i的i%i=0,所以它当前是无用的(想想看——任何数字除以它本身都不会有余数,这是模运算符(%)计算的结果)

相反,你应该考虑如何打印除了倍数以外的数字。要做到这一点,你必须考虑每一个数字在1和100之间,这样你的for循环应该从<代码> i=1 < /代码>到<代码> 100 > />代码。然后,对于每一个数字<代码> i <代码>,你应该考虑它是否是<代码> EvultWimNub < /代码>的倍数。使用

i%eviltwinNumb
执行此操作。如果它是倍数,则不打印它。或者,如果它不是倍数,则打印它。因此,当
i%eviltwinNumb!=0
时,只应打印
i


要查看完整的示例,请参阅《恐怖袋熊》的帖子,但希望此讨论有助于您的理解。

什么?说真的吗?我%i?感谢您的帮助:)感谢您的帮助:)
for(int i=1; i<=100; i++)  // loop from 1 to 100
{
    if(i%eviltwinNumb != 0 )  // if not an exact multiple of eviltwinNumb 
    {
        System.out.println(i);  // print it
    }
}