示例:
package operator; public class Demo03 { public static void main(String[] args) { //逻辑运算符 //与(and) 或(or) 非(not) boolean a = false; boolean b = true; System.out.println(a&&b); //输出false。逻辑与运算:两个都为真,结果才为真。 System.out.println(a||b); //输出true。逻辑或运算:两个有一个为真,结果就为真。 System.out.println(!a); //输出true。逻辑非运算:真变为假,假变为真。 //短路运算 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); //输出false System.out.println(c); //输出5,说明c++<4并没有被执行,该语句被“短路”了 } } 位运算符示例:
package operator; public class Demo04 { public static void main(String[] args) { //位运算 /* * 设 * A = 1101 0001 * B = 0110 1000 * 则 * A&B = 0100 0000 按位与运算 * A|B = 1111 1001 按位或运算 * A^B = 1011 1001 按位异或运算,即不相等为1,相等为0 * ~B = 1001 0111 按位取反运算 * */ /* 题目:2*8如何运算才最快? 思路:2*8 = 2*2*2*2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 <<为左移,每次左移等同于数值*2,但效率极高 >>为右移,每次右移等同于数值/2,但效率极高 */ System.out.println(2<<3); //输出16 } } 赋值运算符示例:
package operator; public class Demo05 { public static void main(String[] args) { int a = 10; int b = 10; a += b; //等同于a = a + b; System.out.println(a); //输出20 a -= b; //等同于a = a - b; System.out.println(a); //输出10 a *= b; //等同于a = a * b; System.out.println(a); //输出100 a /= b; //等同于a = a / b; System.out.println(a); //输出10 } } 条件运算符示例:
package operator; public class Demo06 { public static void main(String[] args) { //条件运算符 a ? b : c //如果a为true,则执行b,否则执行c int score = 50; String mark = score>=60 ? "及格" : "不及格"; System.out.println(mark); //输出"不及格" } } Java流程控制 Scanner对象在Java5及以后的版本中,我们可以通过java.util.Scanner来获取用户的输入。创建Scanner对象的基本语法如下:
Scanner sc = new Scanner(System.in);我们可以通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串。在读取前,我们一般需要使用 hasNext() 与 hasNextLine() 判断是否还有输入的数据。
使用next()时:
一定要读取到有效字符后才可以结束输入。
对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
不能得到带有空格的字符串。
示例:
package com.wmwx.Scanner; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //创建一个扫描器对象,用于从键盘接收数据 Scanner sc = new Scanner(System.in); System.out.println("请输入内容:"); //判断用户有没有输入字符串 if (sc.hasNext()){ //使用next方式接收 String str = sc.next(); System.out.println("输入的内容为:"+str); //输入"hello world",输出"hello" } //凡是属于IO流的类如果不关闭就会一直占用资源 //要养成习惯,用完就关闭 sc.close(); } }使用nextLine()时:
以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
可以获得带有空格的字符串。
示例:
package com.wmwx.Scanner; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入内容:"); if (sc.hasNextLine()){ //使用nextLine方式接收 String str = sc.nextLine(); System.out.println("输入的内容为:"+str); //输入"hello world",输出"hello world" } sc.close(); } } 顺序结构Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序从上到下一句一句执行。
示例:
package com.wmwx.struct; public class Demo01 { public static void main(String[] args) { //顺序结构,从上到下依次执行 System.out.println("1"); System.out.println("2"); System.out.println("3"); System.out.println("4"); System.out.println("1"); } } 选择结构Java中的选择结构包含以下五种:
if单选择结构
if双选择结构
if多选择结构
嵌套的if结构
switch多选择结构
if单选择结构语法如下:
if (布尔表达式){ //布尔表达式为true时执行的语句 }示例:
package com.wmwx.struct; import java.util.Scanner; public class IfDemo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入内容:"); //判断是否输入了内容 if (scanner.hasNextLine()){ String str = scanner.nextLine(); //判断输入的字符串是否与"hello"相等 if (str.equals("hello")){ //如果相等,就输出这句话 System.out.println("你输入的是:"+str); } } scanner.close(); } } if双选择结构语法如下:
if (布尔表达式){ //布尔表达式为true时执行的语句 } else { //布尔表达式为false时执行的语句 }