三目运算符
三目运算符的格式
表达式1 ?表达式2 :表达式3 | |||||||
注意事项
表达式1必须是一个布尔表达式
如果表达式1为真,那么执行表达式2,否则执行表达式3
自我检验
根据以下代码思考打印的结果是什么?
public class TestDemo2 { public static void main(String[] args) { boolean flg = true == true ? true : true == false ? false : false; System.out.println(flg); boolean flg2 = true == false ? true : true == false ? false : false; System.out.println(flg2); } }
提示:全局观——broaden your perspective
正确答案:true,false
JAVA中的逻辑控制
其实程序和人生是一样:顺序中夹杂着循环伴随一次次选择不断成长
顺序语句
public class SequentialStatementsExample { public static void main(String[] args) { // 声明并初始化两个整型变量 int num1 = 10; int num2 = 20; // 计算两个数的和 int sum = num1 + num2; // 打印计算结果 System.out.println("Sum: " + sum); // 修改num1的值 num1 = 5; // 计算两个数的差 int difference = num1 - num2; // 打印计算结果 System.out.println("Difference: " + difference); } }
选择语句
单分支
if (布尔表达式){ //语句1 }
双分支
if (布尔表达式){ //语句1 }else{ //语句2 }
多分支
if (布尔表达式1){ //语句1 }else if(布尔表达式2){ //语句2 }else{ //语句3 }
switch语句
public static void main(String[] args) { // switch语句 int a = 10; switch (a){ case 1: System.out.println(1); break; case 2: System.out.println(2); default: System.out.println("Aileen"); break; }
面试题:不能作为Switch参数的数据类型是什么?
float double boolean long
switch和if语句最本质的区别就是:switch语句后面括号跟的必须是只能是以下类型的表达式:
基本类型:byte、char、short、int
(不能是long类型
)引用类型:String常量串、枚举类型
而if后面可以是复杂的条件语句。
JAVA中读入一个整数的写法——Scanner
import java.util.Scanner; public class TestDemo2 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //判断奇偶数 int num = scan.nextInt();//输入一个整数 if (num % 2 == 0){ System.out.println(num +" 是偶数"); }else{ System.out.println(num +" 是奇数"); } }
小试牛刀:判断一个年份是否是闰年
import java.util.Scanner; public class TestDemo2 { public static void main(String[] args) { //四年一闰;百年不闰,四百年再闰 Scanner scan = new Scanner(System.in); int year = scan.nextInt(); if(year % 4 == 0 && year % 100 != 0 || year % 400 ==0) { System.out.println(year + " 是闰年"); } else { System.out.println(year + " 是平年"); } }
循环语句
while循环
public class TestDemo2 { public static void main(String[] args) { while(循环条件){ 循环语句; } }
打印1-10的数字
public class TestDemo2 { public static void main(String[] args) { int i = 1; while(i<=10){ System.out.println(i); i++; } }
打印1-10的和
public class TestDemo2 { public static void main(String[] args) { int i = 1; int sum = 0; while(i<=10){ sum = sum + i; i++; } System.out.println(sum); }
打印5的阶乘
public class TestDemo2 { public static void main(String[] args) { int i = 1; int j = 1; while(i<=5){ j *= i; i++; } System.out.println(j); }
打印1-5的阶乘之和
public class TestDemo2 { public static void main(String[] args) { int i = 1; int j = 1; int sum = 0; while(i<=5){ j *= i; sum += j; i++; } System.out.println(sum); }
判断素数
public class TestDemo2 { public static void main(String[] args) { //判断素数 Scanner scan = new Scanner(System.in); int num = scan.nextInt(); int i = 2; while (i <= Math.sqrt(num)) { if (num % i == 0) { System.out.println(num + " 不是素数"); return;//跳出循环 } i++; } System.out.println(num + "是素数"); }
打印1-100的所有素数
import java.util.Scanner; public class TestDemo2 { public static void main(String[] args) { int i = 2; while (i < 100) { boolean isPrime = true; // System.out.println(i); int k = 2; while (k <= Math.sqrt(i)) { if (i % k == 0) { System.out.println(i + "不是素数"); isPrime = false; break; } k++; } if (isPrime) { System.out.println(i + " 是素数"); } i++; } } }
编写程序数一下 1到 100 的所有整数中出现多少个含有数字9的数的个数
import java.util.Scanner; public class TestDemo2 { public static void main(String[] args) { int i = 1; int sum = 0; while(i <= 100) { if (i / 10 == 9 || i % 10 == 9) { sum++; } i++; } System.out.println(sum); }
编写程序数一下 1到 100 的所有整数中出现多少个数字9
import java.util.Scanner; public class TestDemo2 { public static void main(String[] args) { int i = 1; int count = 0; while(i <= 100){ //十位是9 if(i / 10 == 9){ count++; } //个位是9 if(i % 10 == 9){ count++; } i++; } System.out.println(count); }
for循环
public class TestDemo3 { public static void main(String[] args) { for(表达式①;表达式②;表达式③){ 表达式④; } }
表达式①:初始化条件
表达式②:循环判断条件
表达式④:循环需要执行的业务逻辑
for循环执行顺序
One
表达式3
表达式1
布尔表达式2
表达式4
求1-5的阶乘之和
public class TestDemo3 { public static void main(String[] args) { int sum = 0; for (int n = 1; n <= 5; n++) { int i = 1; for (int num = 1; num <= n; num++) { i *= num; } sum += i; } System.out.println(sum); }
控制循环的关键字
结束循环-break
不管循环还剩多少次,都将提前结束。
跳过本次循环-continue
结束本趟循环,去执行下一趟循环。
总结