Java 如果(计数%2==1)?

Java 如果(计数%2==1)?,java,modulo,Java,Modulo,我不确定这段代码如何处理(计数%2==1)以及根据它应该输出什么。任何澄清都很好 Scanner s = new Scanner("d 1 o 2 g 3 c 7 t"); int count = 0; while(s.hasNext()) { if (count % 2 == 1) System.out.print(s.next() + " "); else s.next(); count++; } 计数%2本质上是长除法,并产生余数。5%2等于1。6%3等于0。所以不管余数是第一个数除以第

我不确定这段代码如何处理(计数%2==1)以及根据它应该输出什么。任何澄清都很好

Scanner s = new Scanner("d 1 o 2 g 3 c 7 t");
int count = 0;
while(s.hasNext())
{
if (count % 2 == 1)
System.out.print(s.next() + " ");
else
s.next();
count++;
}

计数%2
本质上是长除法,并产生余数。5%2等于1。6%3等于0。所以不管余数是第一个数除以第二个数

“%”是余数(又称模)运算符,它给出除法的余数。当数字可被2(偶数)整除时返回0,当不可被2(奇数)整除时返回1

因此,当您的代码使用“if(count%2==1)…”时,它将查找奇数(您的“count”变量),因此输出将是:“1237”

您可以使用联机Java编译器验证输出: (如果使用它,请确保在代码顶部添加“import java.util.Scanner;”)

我知道这可能会让人困惑,因为您可能会认为“d”应该是奇数,因为它是字符串中的第一项,但您的count变量从0开始(即“d”位置),而且由于Scanner.next()方法的存在,实际上忽略了空格。所以,实际上,您可以将字符串看作“d1o2g3c7t”,现在您可以更容易地将“1237”看作奇数位置


希望这有帮助

你试过运行它吗?