Java菜鸟求教,请帮忙把每一语句块注释下,作用、目的是什么,谢谢!!
发布网友
发布时间:2022-05-29 16:51
我来回答
共1个回答
热心网友
时间:2023-10-26 06:07
public
class
B
{
public
static
void
main(String[]
args)
{
//定义对象m为ArrayList类型,长度为100
ArrayList
m
=
new
ArrayList(100);
//循环赋值,第1个元素为1,第2个元素为2...,第100个元素为100
for
(int
i
=
0;
i
<
100;
i++)
{
m.add(i
+
1);
}
//定义对象n
Object
n
=
null;
//如果m中元素个数大于2调用sy()方法
while
(m.size()
>
2)
{
//将sy()方法返回的对象赋值给m
m
=
sy(m,
m.size());
}
//获得第2个元素赋给n
n
=
m.get(1);
//输出
System.out.print(n);
}
public
static
ArrayList
sy(List
s,
int
num)
{
//定义对象list为ArrayList类型
ArrayList
list
=
new
ArrayList();
//如果num除以3的余数不等于0
if
(num
%
3
!=
0)
{
//循环的次数为num除以3的余数
for
(int
i
=
num
%
3;
i
>
0;
i--)
{
//获得s中位置为num-i的元素,添加到list中
list.add(s.get(num
-
i));
//输出list
System.out.println(list);
}
}
//循环,条件为i小于num减去num除以3的余数
for
(int
i
=
1;
i
<
num
-
num
%
3;
i++)
{
//就是不除3整除的数,添加到list中
if
(i
%
3
!=
0)
//获得s中位置为i-1的元素,添加到list中,
list.add(s.get(i
-
1));
}
//返回list对象
return
list;
}
}
public
class
A
{
public
static
void
main(String[]
args)
{
//定义input对象
Scanner
input
=
new
Scanner(System.in);
System.out.print("请输入总人数:");
//从控制台获得输入的数字
int
p
=
input.nextInt();
//定义变量per类型为boolean数组,长度为p
boolean[]
per
=
new
boolean[p];
int
num
=
0;
//循环次数为per的长度
for
(int
i
=
0;
i
<
per.length;
i++)
{
//赋值
per[i]
=
true;
}
int
t
=
0,
len
=
per.length;
while
(len
>
1)
{
for
(int
i
=
0;
i
<
per.length;
i++)
{
//如果per[i]为true
if
(per[i])
{
//t加1再赋为t
t++;
//如果t等于3,把赋为0,
if
(t
==
3)
{
t
=
0;
per[i]
=
false;
len--;
num++;
System.out.print("num:"
+
num);
}
}
}
}
//把per数组转成字符串输出
System.out.println("最后的情况:"
+
Arrays.toString(per));
for
(int
i
=
0;
i
<
per.length;
i++)
{
//per[i]值为true
if
(per[i])
{
//输出i+1再除于3的余数
System.out.println("原来喊的数:"
+
(i
+
1)
%
3);
}
}
}
}