Day02-02流程控制
02
顺序结构

选择结构

if单选择结构

package com.kuang.structure;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
//equals:判断字符串是否相等
if(s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
if双选择结构

package com.kuang.structure;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args){
//考试分数大于60就是及格,小于60就不及格。
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if(score>60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}
}
if多选择结构

package com.kuang.structure;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args){
/*
if语句至多有一个else语句,else语句必须在所有的else if 语句之后
一旦其中一个else if 语句检测为true,其他的else if 以及else 语句都将跳过执行
*/
//考试分数大于60就是及格,小于60就不及格。
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if(score==100){
System.out.println("恭喜满分");
}else if(score<100&&score>=90){
System.out.println("A级");
}else if(score<90&&score>=80){
System.out.println("B级");
}else if(score<80&&score>=70){
System.out.println("C级");
}else if(score<70&&score>=60){
System.out.println("D级");
}else if(score<60&&score>=0){
System.out.println("不及格");
}else {
System.out.println("成绩不合法");
}
scanner.close();
}
}
嵌套的if结构

思路:二分法
Switch多选择结构

package com.kuang.structure;
public class Demo04 {
public static void main(String[] args){
//case 穿透 //switch 匹配一个具体的值
char grade = 'C';
switch(grade){
case 'A':
System.out.println("优秀");
break; //可选
case 'B':
System.out.println("良好");
break; //可选
case 'C':
System.out.println("及格");
break; //可选
case 'D':
System.out.println("再接再厉");
break; //可选
case 'E':
System.out.println("挂科");
break; //可选
default :
System.out.println("未知等级");
}
}
}
JDK7新特性,表达式结果可以是字符串!!!
package com.kuang.structure;
public class Demo05 {
public static void main(String[] args){
String name = "狂神";
//JDK7新特性,表达式结果可以是字符串!!!
//字符的本质还是数字
//反编译 java---class(字节码文件)----反编译(IDEA)
switch(name){
case"秦疆":
System.out.println("秦疆");
break;
case"狂神":
System.out.println("狂神");
break;
default :
System.out.println("弄啥嘞");
}
}
}
怎么在IDEA中查看反编译

循环结构

while循环

package com.kuang.structure;
public class Demo06 {
public static void main(String[] args){
//计算1+2+3+...+100=?
int i = 0;
int sum = 0;
while(i<100){
sum = sum +i;
i++;
}
System.out.println(sum);
}
}
do...while循环

package com.kuang.structure;
public class Demo07 {
public static void main(String[] args){
//计算1+2+3+...+100=?
int i = 0;
int sum = 0;
do{
sum = sum +i;
i++;
}while(i<=100)
System.out.println(sum);
}
}
package com.kuang.structure;
public class Demo08 {
public static void main(String[] args){
int a = 0;
while (a<0){
System.out.println(a);
a++;
}
System.out.println("===================");
do{
System.out.println(a);
a++;
}while(a<0);
}
}
for循环【最有效最灵活的循环】

package com.kuang.structure;
public class Demo09 {
public static void main(String[] args){
int a = 1;//初始化条件
while (a<=100){//条件判断
System.out.println(a);//循环体
a+=2;//迭代
}
System.out.println("while循环结束!");
//初始化//条件判断//迭代
for(int i = 1;i<=100;i++){
System.out.println(i);
}
/*
IDEA快捷键:
100.for+回车,自动生成上面的for循环
*/
System.out.println("for循环结束");
/*
关于for循环有以下几点说明:
最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
然后,检测布尔表达式的值。如果为true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。
再次检测布尔表达式。循环执行上面的过程。
*/
//死循环
for(;;){
}
}
}
练习1:计算0~100之间的奇数和偶数的和
package com.kuang.structure;
public class Demo10 {
public static void main(String[] args){
//练习1:计算0~100之间的奇数和偶数的和
int oddSum = 0;
int evenSum = 0;
for (int i = 0;i<100;i++){
if (i%2!=0){//奇数
oddSum+=i;
}else{//偶数
evenSum+=i;
}
}
System.out.println("奇数的和:"+oddSum);
System.out.println("偶数的和:"+evenSum);
}
}
练习2:用while或for循环输出1~1000之间能被5整除的数,并且每行输出3个
package com.kuang.structure;
public class Demo11 {
public static void main(String[] args){
//练习2:用while或for循环输出1~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();//换行
System.out.print("\n");//换行
}
}
//println 输出完会换行
//print 输出完不会换行
}
}
练习3:打印九九乘法表
package com.kuang.structure;
/*
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
....
*/
public class Demo12 {
public static void main(String[] args){
//练习3:打印九九乘法表
//1.我们先打印第一列,
//2.我们把固定的1再用一个循环包起来
//3.去掉重复性,j<=i
//4.调整样式
for (int i = 1;i<=9;i++){
for(int j = 1;j<=i;j++){
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
增强for循环【用于数组】

package com.kuang.structure;
public class Demo13 {
public static void main(String[] args){
int[] numbers={10,20,30,40,50};//定义一个数组
for(int i = 0;i<5;i++){//也可以写成for(int i = 0;i<numbers.length;i++){}
System.out.println(numbers[i]);
}
System.out.println("=============================");
//遍历数组的元素
//快捷键:numbers.for
for(int x:numbers){//增强for循环
System.out.println(x);
}
}
}
break、continue、goto
break【用于强行退出循环】
continue【用于终止某次循环】

练习:打印三角形
package com.kuang.structure;
public class Demo14 {
public static void main(String[] args){
//打印三角形 5行
for(int i=1;i<=5;i++){
for(int j=5;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();
}
}
}

浙公网安备 33010602011771号