Java基础 四
- 顺序结构
- 分支结构
- if - else
- switch-case
- 总结
- 循环结构
- for
- while
- do-while
- 总结
tips:从键盘获取不同类型变量,需要使用Scanner类。
示例:
import java.util.Scanner; //必要第一步,导入Scanner包
class ScannerTest{
public static void main(String ScannerTest[]){
Scanner scan = new Scanner(System.in); //必要第二布,实例化Scanner
//****************************
System.out.print("Enter your name:");
String name = scan.next(); //调用字符串型
//****************************
System.out.print("Enter your age:");
int age = scan.nextInt(); //调用整型
//****************************
System.out.print("Enter your height:");
double height = scan.nextDouble(); //调用浮点型
//****************************
System.out.print("Are you really single(true or false):");
boolean answer = scan.nextBoolean(); //调用布尔型
}
}
运行两种结果表示:
顺序结构
程序从上到下执行。
分支结构
if - else
3种表达式:
1. if (条件表达式){
执行条件表达式1
}
2. if (条件表达式){
执行条件表达式1
} else {
执行条件表达式2
}
3.if (条件表达式){
执行条件表达式1
} else if (条件表达式) {
执行条件表达式2
} else if (条件表达式) {
执行条件表达式3
}
...
else {
执行条件表达式n
}
示例:
import java.util.Scanner;
class Condition{
public static void main(String[] condition){
Scanner scan = new Scanner(System.in);
System.out.print("Please enter your age:");
int age = scan.nextInt();
//--------------第一种
if ( age < 0 ){
System.out.println(" Input error ");
}
//--------------第二种
if ( 0 < age && age <= 10 ){
System.out.println("You're children.");
}else{
System.out.println("");
}
//--------------第三种
if ( 10 < age && age <= 18 ){
System.out.println("You are growing.");
}else if ( 18 < age && age <= 50 ) {
System.out.println("You're young.");
}else if ( 50 < age && age <= 100 ) {
System.out.println("You're not young.");
}else{
System.out.println("");
}
}
}
switch-case
根据switch表达式中的值,依次匹配各case种的常量,匹配成功则执行相应语句。
调用完执行语句后,仍向下执行其它case结构中的执行语句, 直到遇到break语句关键字(跳出选择) 或 switch-case结构末尾 结束
结构:
switch(表达式){ //此处非条件表达式(即非布尔类型),且只能为以下6种类型之一(byte、short、char、int、枚举、String)
case 常量1:
执行语句1;
break;
case 常量2:
执行语句2;
break;
case 常量3:
执行语句3;
break;
...
case 常量n:
执行语句n;
break;
default: //类似于else
执行语句;
break;
}
示例:
//根据用于指定月份,打印该月份所属的季节。
//3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
import java.util.Scanner;
class SwitchCase{
public static void main(String SwitchTest[]){
System.out.print("请输入:");
Scanner scan = new Scanner(System.in);
int a = scan.nextInt(); //选取数据类型
switch(a){
case 3 :
case 4 :
case 5 :
System.out.printf("春季");
break;
case 6 :
case 7 :
case 8 :
System.out.printf("夏季");
break;
case 9 :
case 10 :
case 11 :
System.out.printf("秋季");
break;
case 12 :
case 1 :
case 2 :
System.out.printf("冬季");
break;
default:
System.out.printf("输入错误");
break;
}
}
}
总结
▶ if-else可以嵌套:
if(a>0)
{
if(a<2)
{
c=3;
}
else
{
c=2;
}
}
else
c=1;
▶ switch-case中多个case语句相同可合并,在可以同时使用switch-case和if-else两种结构时(switch中表达式取值情况不多时),优先选择switch-case。
▶ 可用switch-case的结构都可转换为if-else,反之不成立;
循环结构
满足条件下的反复执行某段代码行为;
四要素:初始化条件、循环条件、循环体、迭代条件
在线画流程图地址推荐:https://app.diagrams.net/
for
结构:
for (初始化条件;循环条件;迭代条件){
循环体
}
执行过程:
初始化条件→循环条件→循环体→迭代条件→循环条件→循环体→迭代条件→…→(不满足)循环条件→跳出循环
示例:
//输出三次HelloWord
class For{
public static void main(String For[]){
for(int i = 1 ; i < 4 ; i++){
System.out.println("Hello word");
}
}
}
while
结构:
初始化条件
while(循环条件){
循环体;
迭代条件;
}
执行过程:
初始化条件→循环条件→循环体→迭代条件→循环条件→循环体→迭代条件→…→(不满足)循环条件→跳出循环
示例:
//输出三次HelloWord
class While{
public static void main(String While[]){
int i = 1 ;
while(i < 4){
System.out.println("Hello Word");
i ++;
}
}
}
do-while
结构:
初始化条件
do{
循环体;
迭代条件;
}while(循环条件);
执行过程:
初始化条件→循环体→迭代条件→循环条件→循环体→迭代条件→循环条件→…→(不满足)循环条件→跳出循环
示例:
//输出三次HelloWord
class DoWhile{
public static void main(String DoWhile[]){
int i = 1;
do{
System.out.println("Hello Word");
i ++;
}while( i < 4 );
}
}
总结
▶ 循环结构避免死循环。
▶ for循环和while循环可以相互转换。
▶ for循环和while循环的初始化条件部分的作用范围不同。
▶ 保证算法的有限性。
▶ do-while循环至少会执行一次。