由于昨天忘了发,今天一起发了!这两天,天气很热,但是晚上的武汉很凉快,所以学习的心情也渐渐好起来。昨天,学习了如何手动输出60的十六进制数:3C。编的代码如下:
class Test
{
public static void main(String[] args)
{
int i1 = 60;
int i2 = i1 & 15;
String j = (i2 > 9)? (char)(i2 - 10 + 'A')+"" : i2 + "";
int temp = i1 >>> 4;
i2 = temp & 15;
String k = (i2 > 9)? (char)(i2 - 10 + 'A')+"" : i2 + "";
System.out.println(k + "" + j);
}
}
这里面的思想就是,60的二进制和15的二进制数先做与运算,结果得到的就是1100,也就是12,然后12再换算成C,这是十六进制3C的C。剩下的一位3,用60右移4位,高位补0,然后同样上面的操作,将其换算十六进制的3。
除此之外,学习了获取三个数的最大值并排序。这些方法是学习好语言的基础,所以我都会自己去编写操作一遍,用的If-else语句。直接上代码,可能简单,但是是我自己学的哈哈哈。
import java.util.Scanner;
class IfTest
{
public static void main(String[] args)
{
Scanner scan = new Scanner(Systemin)
int n1 = scan.nestInt()
int n2 = scan.nestInt()
int n3 = scan.nestInt()
int max;
if (n1 >= n2,n1 >= n3)
{ max = n1;
}else if (n2 >= n1,n2 >=n3)
{ max = n2;
}else
{
max = n3;
}
System.out.println("max = " + max);
}
}
学完了三元运算符,就学了流程控制,IF语句和Switch语句。其中凡是可以用三元运算符的地方都可以用IF语句,三元运算符的效率要比IF语句效率高。
我今天学习了,如何从键盘获取不同类型的变量,这里要用到的是Scanner类。第一步,要从导入包,import Java.uti.Scanner。然后实例化:Scanner scan = new.nextInt() 。具体操作,我编了个程序,用的东西算是比较多了哈哈,但是成功了,心里开心。
/*编写程序
从键盘输入2022年的"month"和"day"
要求通过程序输出日期是2022的第几天
*/import java.util.Scanner
class SwitchTest1
{
public static void main(String[] args)
{
Scanner scan = new Scanner(system.in);
System.out.println("请输入2022年的month");
int month = sacn.nextInt();
System.out.println("请输入2022年的day");
int day = sacn.nextInt();
//定义一个变量保存总天数
/*
int sumdays = 0;
if (month == 1)
{ sumdays = day;
}else if (month == 2)
{ sumdays = 31 + day;
}else if (month == 3)
{ sumdays = 31 + 28 + day;
}
...
System.out.println("Hello World!");
*/
/*
switch (month)
{
case 1 :
sumdays = day;
case 2 :
sumdays = 31 + day;
}
*/
switch (month)
{
case 12:
sumdays += 30;
case 11:
sumdays += 31;
case 10:
sumdays += 30;
case 9:
sumdays += 31;
case 8:
sumdays += 31;
case 7:
sumdays += 30;
case 6:
sumdays += 31;
case 5:
sumdays += 30;
case 4:
sumdays += 31;
case 3:
sumdays += 28;
case 2:
sumdays += 31;
case 1:
sumdays += day;
}
}
}