所谓极限训练营是由老九学堂举办的一次线上培训项目,我深知在现在要提高自己,因此报名参加。
第一周学习了三章,分别是:
一、JAVA语言概述
二、变量与数据类型
三、运算符与选择结构
在第一章里面,我主要学会了安装环境变量,用记事本完成一个程序。用java写了第一个程序——永远的helloworld。
public class Chapter1_3_1{
public static void main(String[] args){
System.out.print("Hello World!");
}
}
我以前简单的接触过c++ 和python,难免会产生对比,对于初学者而言感觉java并没有那么的简单。因为java的“起手式”要两个public,输出方法也较为复杂,而c++只用int main()然后cout、python直接print就好。包括对程序进行输入,java是三者中最复杂的。当然,这也与我浅薄的见识有关,因为我仅仅只把java学到了运算符。可能很久以后我在回过头看就不这么想了吧。
在写代码的方面,有时候会有许多错误,但都是一些可以避免的细小错误。比如:括号写一半,没有写分号等等。后来学了数据类型后,又多了一种错误,那就是经常在有小数点的时候出错,有时候在printf决定保留几位小数时也会出错。
print、println、printf的区别:
printf主要是继承了C语言的printf的一些特性,可以进行格式化输出
print就是一般的标准输出,但是不换行
println和print基本没什么差别,就是最后会换行
在第二章中,重点是变量的声明和使用。我觉得这里没什么难度,唯一一个容易出错的地方就是变量类型的自动转换。但只要明白两句话就好:待转换的两种数据类型要相互兼容;转换后的数据类型的范围不小于转换前的类型的表示范围。
在第三章中学习了一些基础无比的知识,运算符和选择结构。 虽然基础,但很重要。
在写作业的时候我遇到这么一个题让我想了好久:
给一个不大于5位的正整数,求出它是几位数,并且分别打印出每一个位的数字。
这个题在很多人眼里巨简单比如:用字符串表示然后求长度,逐渐输出每一个。两三行就搞定。但是如果只用条件语句的话,怎样才能把这道题写好?我是这么写的:
在这里import java.util.Scanner;
public class Chapter3_3_3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个不大于5位的正整数:");
int num = input.nextInt();
int ten_thousand;//万位数
int thousand;//千位数
int hundred;//百位数
int decade;//十位数
int unit;//个位数
if ((num / 10000) != 0) {
System.out.println("你输入的是五位数。");
ten_thousand = num / 10000;
num = num % 10000;
thousand = num / 1000;
num = num % 1000;
hundred = num / 100;
num = num % 100;
decade = num / 10;
unit = num % 10;
System.out.println("万位数为:" + ten_thousand);
System.out.println("千位数为:" + thousand);
System.out.println("百位数为:" + hundred);
System.out.println("十位数为:" + decade);
System.out.println("个位数为:" + unit);
}
else if((num / 1000) != 0) {
System.out.println("你输入的是四位数。");
thousand = num / 1000;
num = num % 1000;
hundred = num / 100;
num = num % 100;
decade = num / 10;
unit = num % 10;
System.out.println("千位数为:" + thousand);
System.out.println("百位数为:" + hundred);
System.out.println("十位数为:" + decade);
System.out.println("个位数为:" + unit);
}
else if((num / 100) != 0) {
System.out.println("你输入的是三位数。");
hundred = num / 100;
num = num % 100;
decade = num / 10;
unit = num % 10;
System.out.println("百位数为:" + hundred);
System.out.println("十位数为:" + decade);
System.out.println("个位数为:" + unit);
}
else if((num / 10) != 0) {
System.out.println("你输入的是两位数。");
decade = num / 10;
unit = num % 10;
System.out.println("十位数为:" + decade);
System.out.println("个位数为:" + unit);
}
else {
System.out.println("你输入的是个位数。");
unit = num;
System.out.println("个位数为:" + unit);
}
}
}
我直接用暴力的方法把所有的情况都列举了一遍,这其实是第二版。第一版我写了好久,实在是太过于冗长了就放弃了。至于这道题的升级版写法,等我往后学学再补充。
这种题虽然简单,但是写好对我一个新新手来说是不容易的。做这种题的意义在于温习语法的同时可以充分的练习指法,并且可以磨一磨心性。我是非常爱电脑和其他电子产品的,在这之前我爱的方式是打游戏,但现在不一样了,我通过写代码来和电脑进行交流。这周是训练营的第一周,我感觉过的非常非常充实,我想在这条路上走的越来越远,哪怕秃头。