在条件语句、选择语句和循环语句上,Java 的代码编写等同于 C++。
if-else 语句
当条件成立时,执行某些语句;否则执行另一些语句。
不一定非有 else ,也不一定只有一个 else。
比如进行年龄的筛选,小于 20 岁输出年轻人,大于 60 岁输出老年人,否则为中年人。
1 2 3 4 5 6 7 8 9 10
| public class ifdemo { public static void main(String[] args) { int age=25; if(age<20){ System.out.println("年轻人"); }else if(age>60){ System.out.println("老年人"); }else System.out.println("中年人"); } }
|
输入三个整数,输出三个数中最大的那个。
1 2 3 4 5 6 7 8 9 10 11 12 13
| import java.util.Scanner; public class ifdemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(),b = sc.nextInt(),c = sc.nextInt(); if(a>b){ if(a>c){System.out.println(a);} else{System.out.println(c);} }else { if(b>c)System.out.println(b); else{System.out.println(c);} } }}
|
常用的比较运算符:
| 大于 |
> |
| 小于 |
< |
| 大于等于 |
> = |
| 小于等于 |
<= |
| 等于 |
== |
| 不等于 |
!= |
| 再来一个闰年的判断: |
|
1 2 3 4 5 6 7 8 9 10 11
| import java.util.Scanner; public class ifdemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int year = sc.nextInt(); if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { System.out.println(year + "是闰年"); }else System.out.println(year + "不是闰年"); } }
|
switch 语句
注意: swtich 语句中如果不加 break 语句,则从上到下匹配到第一个 case 后,会顺次执行后面每个 case 中的语句。
default:表示所有情况都不匹配的时候,就执行该处内容,和if语句中的else相似
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.print("请输入一个数字(1-7)代表星期几:"); String name; int day = sc.nextInt(); switch(day){ case 1:{ name="Monday"; break; } case 2:{ name="Tuesday"; break; } case 3:{ name="Wednesday"; break; } case 4:{ name="Thursday"; break; } case 5:{ name="Friday"; break; }case 6:{ name="Saturday"; break; }case 7:{ name="Sunday"; break; } default: name="I don't know!"; } System.out.println(name); } }
|
for 循环
1 2 3
| for (init-statement; condition; expression) { statement }
|
在循环中需要初始化语句、条件判断语句、条件控制语句。
init-statement 可以是声明语句、表达式、空语句,一般用来初始化循环变量;
condition 是条件表达式,可以为空,空语句表示 true;
expression 一般负责修改循环变量,可以为空。
在一行中输出斐波那契数列的前 N 项,数字之间用空格隔开。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int a=0,b=1; for(int i=0;i<n;i++) { System.out.printf("%d ",a); int c=a+b; a=b; b=c; } } }
|
在循环中可能会使用 break 和 continue 语句。
比如在判断质数中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); boolean isPrime = true; for(int i=2;i<=n/i;i++) { if(n%i==0){ isPrime=false; break; } } if(isPrime)System.out.println("YES"); else System.out.println("NO"); } }
|
在求 1~100 的所有偶数之和:
1 2 3 4 5 6 7 8 9 10 11 12 13
| import java.util.Scanner; public class Main{ public static void main(String[] args) { int sum=0; for(int i=1;i<=100;i++) { if(i%2==1)continue; sum+=i; } System.out.printf("从1到100的偶数和为:%d",sum); } }
|
while 循环
这东西其实和 for 循环差不了多少。只不过是括号里只剩了一个条件判断语句。
求 1~100 中所有数的立方和:
1 2 3 4 5 6 7 8 9 10 11 12
| public class Main{ public static void main(String[] args) { int i=1,sum=0; while(i<=100) { sum+=i*i*i; i++; } System.out.println(sum); } }
|
do-while 循环
do while 语句与 while 语句非常相似。唯一的区别是,do while 语句限制性循环体后检查条件。不管条件的值如何,都要至少执行一次循环。
在写循环的时候一定要注意不要写出死循环