在条件语句、选择语句和循环语句上,Java 的代码编写等同于 C++。
if-else 语句
当条件成立时,执行某些语句;否则执行另一些语句。
不一定非有 else ,也不一定只有一个 else。
比如进行年龄的筛选,小于 20 岁输出年轻人,大于 60 岁输出老年人,否则为中年人。
java
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("中年人");
}
}
输入三个整数,输出三个数中最大的那个。
java
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);}
} }}
常用的比较运算符:
| 大于 | > |
|---|---|
| 小于 | < |
| 大于等于 | > = |
| 小于等于 | <= |
| 等于 | == |
| 不等于 | != |
| 再来一个闰年的判断: |
java
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相似
java
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 循环
java
for (init-statement; condition; expression) {
statement
}
在循环中需要初始化语句、条件判断语句、条件控制语句。
init-statement 可以是声明语句、表达式、空语句,一般用来初始化循环变量;
condition 是条件表达式,可以为空,空语句表示 true;
expression 一般负责修改循环变量,可以为空。
在一行中输出斐波那契数列的前 N 项,数字之间用空格隔开。
java
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 语句。
比如在判断质数中:
java
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 的所有偶数之和:
java
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 中所有数的立方和:
java
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 语句限制性循环体后检查条件。不管条件的值如何,都要至少执行一次循环。
在写循环的时候一定要注意不要写出死循环