练习答案

此处专门开一贴用来更新练习答案,说实话我还真不知道居然会有这么多小白不会做我布置的练习……明明那么简单……

**↑不来一首BGM吗?**

第一个Java程序

输出其他信息

更改你的代码,让它在控制台输出

1
2
3
4
5
public class MyFirstClass {
public static void main(String[] args) {
System.out.println("叁只仓鼠世界第一帅");
}
}

输出更多信息

更改你的代码,让他在控制台输出

1
2
3
4
5
6
7
public class MyFirstClass {
public static void main(String[] args) {
System.out.println("---------------");
System.out.println("|这是我的世界 |");
System.out.println("---------------");
}
}

如果不加双引号会怎样?

不加双引号,计算机就不会把内容Hello world当成一个字符串处理。而println()只能接收字符串类型的数据。(其实还有其他的,想知道的请自行百度,不过我劝你还是不要浪费时间在这种没用的地方)
如果自己尝试了的同学应该还记得,编译器会给出错误提示:

  • hello cannot be resolved to a variable

这句话的意思是,hello 无法解析为变量。出现这句话的原因在于编译器把hello world当成一个变量来处理了!变量是什么?学完这第二章你就会知道了!

使用数据

第1~3题

1
2
3
4
5
6
7
8
9
10
public class MyFirstClass {
static int x;
public static void main(String[] args) {
double y;
x = 7;
y = 10.3;
System.out.println(x);
System.out.println(y);
}
}

第4~5题

1
2
3
4
5
6
7
8
9
10
public class MyFirstClass {
static int x;
public static void main(String[] args) {
boolean b;
b = !((true || false) && !(!false) );
//先判断左边的括号中t||f,判断得到false,则不再判断&&后面的表达式,直接得出false
//最后判断!false,为true
System.out.println(b);
}
}

第6题

因为是三位数,我们假设int a = 123;a/100得到的就是第一位数。a/10%10得到的就是第二位数。a%10得到的就是第三位数。于是我们只需要int b = a/100 + (a/10%10)*10 + (a%10)*100

第7题

两个“加”运算符同级,所以从左到右运算,”输出:”属于字符串,字符串+int,先把int转换成字符串再执行+运算符,于是变成了输出:10然后这个”输出:10”再往后执行+运算符。继续把b转换成字符串,再执行+运算符,最终得到输出:1020,输出。

第8题

这里只给答案,过程请自行思考

1
2
3
4
5
main函数代码块1输出:32
main函数代码块2输出:100
main函数代码块2输出:202
main函数代码块2输出:98
main函数输出:5

条件和循环

第一题

声明两个int型数据,并判断他们的大小,输出对应大小关系

1
2
3
4
5
6
7
8
9
10
11
12
13
public static void main(String[] args) {
int a = 233;
int b = 234;
if(a > b) {
System.out.println("a大于b");
}
else if(a < b) {
System.out.println("a小于b");
}
else {
System.out.println("a等于b");
}
}

第二题

声明两个double型数据,并判断他们是否相等,是则输出Yes

1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
double a = 213.3;
double b = 210;
b = b + 3.3;
if(a - b <= 0.00000001) {
System.out.println("a等于b");
}
else {
System.out.println("a不等于b");
}
}

第三题

用循环输出-10086~10086间的所有整数
while版

1
2
3
4
5
6
7
public static void main(String[] args) {
int i = -10086;
while (i <= 10086) {
System.out.println(i);
i++;
}
}

for版

1
2
3
4
5
public static void main(String[] args) {
for(int i=-10086;i<=10086;i++) {
System.out.println(i);
}
}

第四题

写一个死循环输出100000个1,并用break跳出
while版

1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) {
int i = 0;
while (true) {
System.out.println("1");
i++;
if(i>=100000) {
break;
}
}
}

for版

1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) {
int i = 0;
for (;;){
System.out.println("1");
i++;
if(i>=100000) {
break;
}
}
}

第五题

用循环输出一个正立的三角形,三角形的大小应该可以由一个int值控制
如:当这个int为5时,应该输出

1
2
3
4
5
0000*
000***
00*****
0*******
*********

先不急着写代码,我们来观察一下这个三角形:
当这个int为 5 的时候,第一行输出4个0,1个,第二行输出3个0,3个*,第三行输出2个0,5个……
可以得到规律:第n行输出 5 - n 个0,n * 2 - 1 个 *,n不大于5
那么我们写代码就容易多了,按照这个规律来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  public static void main(String[] args) {
//可以随意更改这个size的值
int size = 5;
for(int a = 1;a <= size;a++) {
//a代表当前为第几行
for(int i = 0;i < size-a;i++) {
//输出size-a个0
//注意是print而不是println
System.out.print(0);
}
for(int i = 0;i < a * 2 - 1;i++) {
//输出n * 2 - 1个*
//注意是print而不是println
System.out.print("*");
}
//换行
System.out.println();
}
}

第六题

用循环输出一个倒立的三角形,三角形的大小应该可以由一个int值控制
如:当这个int为5时,应该输出

1
2
3
4
5
*********
0*******
00*****
000***
0000*

同样,先观察规律:第一行输出0个0,9个,第二行输出1个0,7个*,第三行输出2个0,5个
得到规律:第n行输出n-1个0, (5-n+1)2 - 1个,n不大于5。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void main(String[] args) {
//可以随意更改这个size的值
int size = 5;
for(int a = 1;a <= size;a++) {
//a代表当前为第几行
for(int i = 0;i < a-1; i++) {
//输出n-1个0
System.out.print(0);
}
for(int i = 0; i < (size-a+1) * 2 - 1;i++) {
//输出(size-n+1)*2 - 1个*
System.out.print("*");
}
//换行
System.out.println();
}
}

第七题

用循环输出一个菱形,菱形的大小应该可以由一个int值控制
如:当这个int为5时,应该输出

1
2
3
4
5
6
7
8
9
0000*
000***
00*****
0*******
*********
0*******
00*****
000***
0000*

观察规律???不需要了!
其实很简单:先输出一个大小为5的正三角形,然后输出一个大小为4的倒三角形!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public static void main(String[] args) {
//可以随意更改这个size的值
int size = 5;
//输出大小为size的正三角形
for(int a = 1;a <= size;a++) {
for(int i = 0;i < size-a;i++) {
System.out.print(0);
}
for(int i = 0;i < a * 2 - 1;i++) {
System.out.print("*");
}
System.out.println();
}
//输出大小为size-1的倒三角形
//(但是每行都要多一个0)
size--;
for(int a = 1;a <= size;a++) {
//因为每行要多一个0,所以不再是i < a - 1了
for(int i = 0;i < a; i++) {
System.out.print(0);
}
for(int i = 0; i < (size-a+1) * 2 - 1;i++) {
System.out.print("*");
}
System.out.println();
}
}

第一个插件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package cn.viosin.minecraft;

import org.bukkit.plugin.java.JavaPlugin;

public class main extends JavaPlugin{
@Override
public void onEnable() {
System.out.println("插件被启动了");
}
@Override
public void onDisable() {
System.out.println("插件被关闭了");
}
@Override
public void onLoad() {
System.out.println("插件已重载");
}
}

注意我说的是让它在被启动时输出一行信息插件被启动了,被关闭时输出一行信息插件被关闭了,服务端重载时输出一行信息插件已重载
而不是[INFO] 插件被启动了 [INFO] 插件被关闭了 [INFO] 插件已重载,至于为什么用getLogger().info输出会有个[INFO]请自己查阅资料,同样的问题还有getLogger().warning()

本章完

最后更新于
2017年7月13日19:13:25

点我返回目录
感谢各位的阅读!

人生不易,仓鼠断气