06.语句
循环结构
程序的执行时顺序执行。但是在执行的过程中,有时候需要条件的判断或循环动作,所以在java中有语句有三种结构:顺序结构,分支结构,循环结构。
顺序结构:指代码顺序执行。
分支结构:指在代码的执行过程中,会进行条件的判断,有的代码会执行,有的代码不执行。
循环结构:指在代码中有的代码会多次执行。
分支结构
if语法
if(布尔表达式) { //如果布尔表达式为true将执行的语句 }
if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false }
if(布尔表达式 1){ //如果布尔表达式 1的值为true执行代码 }else if(布尔表达式 2){ //如果布尔表达式 2的值为true执行代码 }else if(布尔表达式 3){ //如果布尔表达式 3的值为true执行代码 }else { //如果以上布尔表达式都不为true执行代码 }
if语句多用于做范围判断。
/** if语句 */ class IfDemo{ public static void main(String[] args){ int score = 98; if(score>90){//if中条件为true时 执行if后的代码块 //有了代码块后 一定要注意变量的作用域范围 //在哪个{}中声明的,那么在该{}中所有位置都能使用,大括号之外不能使用 String name="张三"; System.out.println("优秀"); } //如果条件为false有需要执行代码可以放入else代码块 //如果代码块中只有一行代码 那么可以省去大括号 //如果没有代码或者有多行代码一定要加上大括号 //如果有else必须和if配对 //在多个if中 只会执行其中一个 else if(score>80){ System.out.println("良好"); } else System.out.println("不优秀"); System.out.println("----结束---"); } }
switch语法
switch(表达式){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default : //可选 //语句 }
用户输入
从程序将结果输出控制台,使用System.out.println();
从控制台进行输入,需要使用java提供的一个功能,java提供了一个类Scanner,在我们自己的代码中使用别人提供的类时,需要将其进行导入。
/** 从程序将结果输出控制台 使用的System.out.println(); 从控制台进行输入 需要使用java提供的一个功能 提供了一个类 这个类叫Scanner,在我们自己的代码中 需要使用别人提供的类 时,需要将其进行导入。 */ import java.util.Scanner; class ScannerDemo{ public static void main(String[] args){ System.out.println("请输入姓名:"); //Scanner是一种类型 Scanner input = new Scanner(System.in); //声明一个变量 接收用户的输入 接收的是一个字符串 String name = input.next(); System.out.println("你输入的姓名是:"+name); System.out.println("请输入年份:"); //如果要接收一个整数 int year = input.nextInt(); System.out.println("你输入的年份是:"+year); //如果要接收一个小数 double score = input.nextDouble(); } }
循环结构
在java中有3中循环结构语句:
在循环结构有2个要点要明确:
【1】循环的条件
【2】循环的代码块
white循环结构
while( 布尔表达式 ) { //循环内容 }
/** while的使用 需求: 打印10句helloworld 如何实现 */ class WhileDemo1{ public static void main(String[] args){ int i=0; /* //条件的判断 while(i<10){ i++;//条件是在变化的 System.out.println("hello world"); } */ while(i++<10){ System.out.println("hello world"); } } }
for循环
for(表达式1; 条件表达式; 表达式3) { //循环体 }
/** for(表达式1;条件表达式2;表达式3){ 循环体 } 执行流程: 先做表达式1;做表达式2;做循环体;做表达式3 做表达式2;做循环体;做表达式3 如果表达式2为false循环执行结束 1+2+3+4......100 */ class ForDemo{ public static void main(String[] args){ //声明变量 用于接收结果 int sum=0; //可以没有表达式,但是必须要有分号 for(int i=1;i<=100;i++){ sum+=i; } System.out.println(sum); } }
/** 求1到100中 偶数之和 使用for循环实现 */ class ForPractice1{ public static void main(String[] args){ //先计算1到100的和 int sum=0; for(int i=1;i<=100;i++){ //偶数和 意味着sum只加偶数 if(i%2==0) sum+=i; } System.out.println(sum); //1到100中 偶数是从2开始的 100结束的 int sum1=0; for(int i=2;i<=100;i+=2){ sum1+=i; } System.out.println(sum1); } }
do...while...结构
先做事然后再比较的循环结构
do { //代码语句 }while(布尔表达式);
/* 1到100的和 */ class DoWhileDemo{ public static void main(String[] args){ int i=1; int sum=0; do{ sum+=i; i++; }while(i<=100); System.out.println(sum); } }
break,continue关键字
在循环中,break表示结束整个循环,continue表示结束当前循环,执行下一次循环
/** break的作用 结束整个循环 */ class BreakDemo{ public static void main(String[] args){ //计算 1到10的和 如果i从1到10中 遇到是5的倍数的数字时结束循环 int sum=0; for(int i=1;i<=10;i++){ if(i%5==0){//当i=5时 执行if中代码块 break;//break的作用是结束循环 } sum+=i; } System.out.println(sum); } }
/** continue只在循环中使用,表示结束当前循环 执行下一次循环 */ class ContinueDemo{ public static void main(String[] args){ //求1到10的和 如果是5的倍数 不进行计算 int sum=0; for(int i=1;i<=10;i++){ if(i%5==0){ continue; } sum+=i; } System.out.println(sum); } }
循环嵌套
外循环控制行,内循环控制列
第一种情况:内外循环独立运行
/** 循环是可以嵌套的。比如说:答应一个n个*的正方形 如果n=5那么结果如下: ***** ***** ***** ***** ***** */ import java.util.Scanner; class ForDemo1{ public static void main(String[] args){ //创建输入对象 Scanner input = new Scanner(System.in); System.out.println("请输入要打印几个*:"); //接收用户输入 int n = input.nextInt(); for(int k=0;k<n;k++){ for(int i=0;i<n;i++){ System.out.print("*"); } //System.out.println(""); /* 转义字符 \n 换行 \" 双引号 \' 单引号 \\ 表示\ \t 表示 tab */ System.out.print("\n"); } } }
第二种情况,内循环依赖于外部循环
/** 打印九九乘法表 */ class NineWork{ public static void main(String[] args){ for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+i*j+"\t"); } System.out.print("\n"); } } }