public static void main(String[] args) { //顺序结构,可以看到Java是从上往下依次编译的 System.out.println("wang"); System.out.println("wang1"); System.out.println("wang2"); System.out.println("wang3"); System.out.println("wang4"); System.out.println("wang5"); }
if 语句:如果布尔表达式返回的结果为true(真)时,那么就会执行{}中的语句,如果返回的是float(假),就不会执行那里面的语句
语法:
if(布尔表达式) { //如果布尔表达式为true将执行的语句 }
//if语句,选择结构 //用一个if语句来判断一个学生的成绩是否及格 public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入该学生的成绩:"); if(scanner.hasNextDouble()){//判断是否有数据输入 double grade=scanner.nextDouble();//获取你输入的数来进行下面的判断65.2 if(grade>60){//如果成绩大于60分是及格,那么就会执行下面的语句 System.out.println("该学生成绩合格"); } } }
if…else语句:
if…else语句的本质就是如果if语句返回的是false(假)时,就会执行else{}中的语句,
相当于就是
如果if(为真){执行这里面的语句},否则{执行else的语句}
语法
if…else 的用法如下:
if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false }
//if语句,选择结构 //用一个if语句来判断一个学生的成绩是否及格 public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入该学生的成绩:"); if(scanner.hasNextDouble()){//判断是否有数据输入 double grade=scanner.nextDouble();//获取你输入的数来进行下面的判断65.2 if(grade>60){//如果成绩大于60分是及格,那么就会执行下面的语句 System.out.println("该学生成绩合格"); }else{ System.out.println("该学生成绩不合格");//输入45.5,会输出这句话 } }
if多分支语句
if(布尔表达式1){
当布尔表达式1为真时,执行这里的语句
}else if(布尔表达式2){
当布尔表达式2为真时,执行这里的语句
}else if(布尔表达式3){
当布尔表达式3为真时,执行这里的语句
}
…
else{
上面的条件都不满足时,就执行这里的语句
}
public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入该学生的成绩:"); if(scanner.hasNextDouble()){//判断是否有数据输入 double grade=scanner.nextDouble();//获取你输入的数来进行下面的判断65.2 if(grade>60 &&grade<70){//如果成绩大于60分是及格,那么就会执行下面的语句 System.out.println("该学生成绩及格"); }else if (grade>60 &&grade<80){ System.out.println("该学生的成绩良好"); }else if (grade>80&&grade<100){ System.out.println("该学生的成绩优秀"); } else if(grade>0&&grade<60){ System.out.println("该学生成绩不合格");//输入45.5,会输出这句话 }else { System.out.println("你输入的成绩不合法"); } }
if嵌套语句
语法:
if(布尔表达式){
java语句
if(布尔表达式){
java语句
}
}
//if嵌套语句 //练习:假如我们要寻找一个数,它在1~100之间。 Scanner scanner=new Scanner(System.in); System.out.println("请输入你要寻找的整数:"); if(scanner.hasNextInt()){ int i= scanner.nextInt(); if(i>0&&i<100) {//如果输入的数在1到100之间 if (i > 0 && i < 50) {//如果在0~50之间 System.out.println("1~50之间"); }if (i >= 50 && i < 100) {//如果在50到100之间 System.out.println("50~100"); if(i>80&&i<100){ System.out.println("80~100"); } } } } scanner.close();
switch多选择结构
语法:
switch(表达式){
case value:
语句
break;使用break来跳出这个选择语句
case value:
语句
break;使用break来跳出这个选择语句
…这这之间有任意个case语句
default:语句//这里学上面case都不符合的语句
}
Scanner scanner=new Scanner(System.in); System.out.println("请输入该学生的成绩:"); if(scanner.hasNextInt()){//判断是否有数据输入 int grade=scanner.nextInt();//获取你输入的数 switch (grade){//通过grade变量来判断,名次 case 1:System.out.println("该学生成绩第一名"); break;//跳出选择 case 2: System.out.println("该学生的成绩第二名"); break; case 3: System.out.println("该学生的成绩第三名"); break; case 4: System.out.println("该学生成绩第四名");//输入45.5,会输出这句话 break; default:System.out.println("你输入的成绩是其他名次"); } }
switch语句除了可以识别一些基本类型,还可以识别stringl类型
//switch语句还可用string类型来作为识别 String str="星期四"; switch(str){ case "星期一": System.out.println("今天是星期一"); break; case "星期二": System.out.println("今天是星期二"); break; case "星期三": System.out.println("今天是星期三"); break; case "星期四": System.out.println("今天是星期四"); break; case "星期五": System.out.println("今天是星期五"); break; case "星期六": System.out.println("今天是星期六"); break; case "星期日": System.out.println("今天是星期日"); break; default: System.out.println("你输入 的不合法"); }
注意如果case语句之后,没有break语句,那么就会出现case 穿透现象。就是说程序不会跳出选择,还会继续往下执行
java中顺序结构只能被执行一次,如果你想要多次执行同样的操作,那么可以使用循环结构来实现
Java中有三个循环结构:
while循环语句
do-while循环语句
for循环语句
java中还引入了一种for的增强型语句
while语句:
语法: while(布尔表达式){//循环的条件,当满足循环的条件时就会执行循环体中的语句
循环体
};
public static void main(String[] args) { //使用while循环来实现1+2+3+....+100=? int sum=0;//总和 int i=0; while (i<=100){ sum=sum+i;//将i循环的值都累加在sum中 i=i+1;//每执行一次循环体就给i+1直到它跳出循环,相当于i++ } System.out.println("1+2+3+....+100="+sum);//1+2+3+....+100=5050 }
do…while语句
语法:
do{
循环体
}while(布尔表达式);
do…while 的执行逻辑就是先执行一次do{循环体}中的语句,然后再执行while后面的布尔表达式来,判断是否符合条件,返回true时就再次执行循环体中的语句,返回float就跳出循环
//使用while循环来实现1+2+3+....+100=? int sum=0;//总和 int i=0; do { sum=sum+i;//将i循环的值都累加在sum中 i=i+1;//每执行一次循环体就给i+1直到它跳出循环,相当于i++ System.out.println(i);//可以看到i的值为1 } while (false);//可以看到的是返回false,之前至少会执行一次 }
for语句
语法:
for(初始化;布尔表达式;迭代){
循环体代码语句
}
最先执行初始化,可以声明一种类型,但可初始化一个或者多个循环控制变量,也可以是空语句
然后,检测布尔表达式的值,如果返回的是true,循环体被执行,如果为false,循环终止,跳出循环开始执行循环体之后的语句
执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)
再次检测布尔表达式,执行上面 的过程
//使用for循环语句:0到100之间的奇数和偶数的和 int sum=0; int sum1=0; for (int i = 0; i <= 100; i++) { if(i%2!=0){//判断是否为奇数 sum=sum+i; }else{//否则就是偶数 sum1=sum1+i; } } System.out.println("奇数的和为"+sum); System.out.println("偶数的和为"+sum1); }
for语句来循环输出0~1000之间能被5整除的数,并且每行输出3个 for (int i = 0; i < 1000; i++) { if(i%5==0){ System.out.print(i+"\t"); } if(i%(5*3)==0){//控制每输出三个数就换行 System.out.println(); }
使用for语句来打印九九乘法表
//打印九九乘法表 for(int i=1;i<=9;i++){//控制行 for(int j=1;j<=i;j++){//控制列 System.out.print(j+"*"+i+"="+(j*i)+"\t"); } System.out.println(); }
打印三角形
//打印三角形 for (int i =1; i <=9; i++) {//控制打印三角形的行 for (int j=9;j>=i;j--){//将一个三角形看成一个正方形分成四个直角三角形先打印除一部分 System.out.print(" "); } for (int j=1;j<=i;j++){ System.out.print("*"); } for(int j=1;j<i;j++){ System.out.print("*"); } System.out.println(); }