Java学习第二天
一.Java中的print、printf和println都是用于输出的函数,它们的区别如下:
1.print函数
print函数是Java中最早的输出函数之一,它可以将指定的数据输出到标准输出流(通常是控制台)。它的语法格式为:
public void print(String s)
其中,s是要输出的字符串。需要注意的是,如果要输出多个数据,需要使用逗号分隔。例如:
int a = 10; double b = 3.14; System.out.print("a=" + a + ",b=" + b); // 输出:a=10,b=3.14
2.printf函数
printf函数与print函数类似,也是将指定的数据输出到标准输出流。但是,它的语法格式更加灵活,可以指定输出数据的类型和格式。例如:
int a = 10; double b = 3.14; System.out.printf("a=%d,b=%.2f", a, b); // 输出:a=10,b=3.14
在上面的代码中,%d表示输出一个整数,%.2f表示输出一个浮点数,保留两位小数。
3.println函数
println函数是Java中的输出函数之一,它可以将指定的数据输出到标准输出流,并在末尾自动换行。它的语法格式为:
public void println(String s)
其中,s是要输出的字符串。需要注意的是,如果要输出多个数据,同样需要使用逗号分隔。例如:
int a = 10; double b = 3.14; System.out.println("a=" + a + ",b=" + b); // 输出:a=10,b=3.14
二.Scanner
Scanner是Java中的一个类,用于从输入流中读取数据。它可以读取不同类型的数据,如整数、浮点数、字符串等。
1.导入
import java.util.Scanner;
2.创建Scanner对象
Scannner input = new Scanner(System.in);
3.获取用户数据
Scanner类提供了多种方法来读取数据,如String next()、int extInt()、double nextDouble()、String nextLine()、boolean hasNext()。使用Scanner类可以方便地获取用户输入的数据,并进行相应的处理。
4.nextInt()和nextLine()的区别
(1)nextInt()方法只会读取数值,剩下" "还没有读取,并将cursor放在本行中。
(2)nextLine()方法会读取" ",并结束(nextLine() reads till the end of line )。
三.位运算符
1.整数的源码,反码,补码都是它本身。
2负数的反码是原码按位取反(符号位除外),补码是反码加一。
3.所有的位运算都发生在补码。
4.a<<x =a*2^x
a>>x = a/2^x
5.a^b^a = b
a^b^b = a
四.练习
-
通过控制台输入一个 4 位整数,输出是否是四叶玫瑰数。(是输出 true,不是输出false)
提示:四叶玫瑰数指一个 4 位数,它的每个位上的数字的 4 次幂之和等于它本身
import java.util.Scanner; public class Rose{ public static void main(String[] args){ Scanner flower = new Scanner(System.in); System.out.println("输入一个四位整数:"); int num = flower.nextInt(); int a = num/1000; int b = num/100 % 10; int c = num/10 % 10; int d = num % 10; System.out.print("是否为四叶玫瑰数:"); System.out.println(num == a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d); } }
2. 定义两个整变量,交换两个变量的值。 (1)通过位运算(异或运算) (2)通过加法计算 (3)定义临时(中间)变量
public class Paixu{ public static void main(String[] args){ int a = 7; int b = 2; // 通过位运算交换 a = a^b; b = a^b; a = a^b; System.out.printf("a=%d\n",a); System.out.printf("b=%d\n",b); // 通过加法计算交换 int c = 3; int d = 4; c = c + d; d = c - d; c = c - d; System.out.printf("c=%d\n",c); System.out.printf("d=%d\n",d); //通过临时变量交换 int e = 10; int f = 15; int x; x = f; f = e; e = x; System.out.printf("e=%d\n",e); System.out.printf("f=%d\n",f); } }
3.通过用户输入三个数(三条边长),判断是否能够组成一个三角形。(是输出 true,不是 输出false)
import java.util.Scanner; public class San{ public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.println ("第一条边长为 "); double a = input.nextDouble(); System.out.println ("第二条边长为 "); double b = input.nextDouble(); System.out.println("第三条边长为 "); double c = input.nextDouble(); System.out.println(a+b>c & a+c>b & b+c>a); } }