Java基础(四)★流程控制

从控制台获取数据:

import java.util.Scanner;//导包语句
Scanner s = new Scanner(System.in);//输入流
double d = s.nextDouble();   // 获取小数
int i = s.nextInt();   // 获取整数
String str = s.nextLine();  // 获取一行
char c = (char)s.nextInt();

字符串拼接运算

String s = “a”;

s = s + “b”; -> s = “ab”

可以利用+将两个字符串进行拼接,或者也可以利用+将任何数据与字符串进行拼接

流程控制

顺序结构

是指代码是从上倒下从左到右依次运行的

分支结构

判断结构

if(逻辑值){
代码块;
}

执行顺序:如果逻辑值为true,执行对应的代码块,反之则不执行 


if结构的代码块只有一句的时候,{}可以省略不写,但是最好写上

if(逻辑值){
Code1;
} else {
Code2;
}

执行顺序:如果逻辑值为true,执行Code1;反之执行Code2 


练习:输入三个数,获取最大值

if(逻辑值1){
Code1;
} else if(逻辑值2){
Code2;
}...else {
Code;
}

执行顺序:先执行逻辑值1,如果逻辑值1true,执行Code1;反之执行逻辑值2,如果逻辑值2true,执行Code2,以此类推

练习:输入一个月份,输出月份对应的季节 3-5-Spring 6-8-Summer 9-11-Autumn 12-2-Winter

选择结构

switch(选中的项){
case 选项1: 代码块; break;
case 选项2: 代码块; break;
……
default:代码块;break;
}

选项的值只能是byte/short/char/int四种类型,JDK1.7开始,支持对String进行选择,

JDK1.5开始,允许表达式的结果是枚举常量

练习:计算器---一个符号和两个数字 - 5 9-> 5 - 9 = -4

break关键字表示当前选项的结束,在switch语句中,如果case之后没有break,那么从匹配的case开始,依次往下执行,只有遇到了break语句或者执行switch语句的末尾才会结束

如果每个case之后都有break的话,case之间的顺序不影响最后的结果;

只要有一个或者一个以上的选项没有break,那么这时候顺序会有影响

int i = s.nextInt();
// int j ;
switch(i){
case 1 : int j = 0; 
case 2 : j += 1; // 编译报错  可能尚未声明变量j
case 3: j += 3; 
default : System.out.println(j);
 }

判断的是一个范围的时候,建议使用if-else-if结构;如果情况相对比较固定的时候,建议使用switch-case语句

循环结构

循环的三要素:定义循环变量;循环条件的控制;循环变量的改变

定义循环变量

while(判断循环变量){
代码块;
}

执行顺序:先判断逻辑值。如果逻辑值为true,执行Code,然后再次判断逻辑值,如果为true,继续循环;如果为false,循环结束

while语句中,如果代码块只有一句,{}也可以省略


 

练习:

1. 从控制台输入一个数字,求1-这个数字的和

2. 输出500以内8的倍数

3. 输入一个数字,输出这个数字是几位数---3463-4

4. 输入一个数字,输出各位数字之和--- 3463 - 16

5. 将一个数字转化成二进制形式显示


do{
Code;
} while(逻辑值);

执行顺序:先执行Code,执行逻辑值,如果逻辑值为true,再次执行Code,如果逻辑值为false,结束循环

 

Code至少执行一次


for循环

普通for循环:

for(循环变量的定义; 循环条件的判断;循环变量的改变){
Code ;
}

增强for循环:


循环的嵌套

循环结构中包含了其他的循环结构,形成了虚幻的嵌套。

练习:九九乘法表

1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9


/************************************/

当循环变量的改变相对比较规律的时候,建议使用for循环

当不知道循环次数的时候,建议使用while循环。

while循环,循环变量定义在循环外,循环结束之后循环变量依然可以使用;for循环的循环变量是定义在for循环里边的,循环结束之后,循环变量不能继续使用

练习:

1. 打印300以内7的倍数

2. 判断一个数是否是一个质数--一个数除了1和本身以外没有别的因数

3. 打印九九乘法表

课后练习:

用一个循环打印九九乘法表


breakcontinue区别

break:用于选择或者循环语句中,表示结束当前一层语句

continue:用于循环语句中,表示跳出当前循环继续下次循环

这两个关键字必须结合相应的语句使用,单独存在没有意义,因此单独存在的时候编译报错

Java中支持对循环进行标号---要求看懂即可。


System.out.print();--废话,废话不允许存在--编译报错

int i  = 5;

while(true){}

System.out.println(i);--这句话编译报错---因为永远执行不到

循环支持标号形式

当需要一次性跳出多层循环的时候,可以使用标号形式。但是不推荐。降低了程序的阅读性

练习:分解质因数 90 = 2 * 3 * 3 * 5

考虑用一个循环完成

 


 


发布了1 篇原创文章 · 获赞 12 · 访问量 6801
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章