Java流程控制
用户交互Scanner
我们可以通过java.util.Scanner来获取用户的输入
基本语法
Scanner s = new Scanner(System.in);
通过Scanner类的next()方法和nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据
- next()
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
- nextLine()
- 以Enter为结束符
- 可以获得空白
顺序结构
-
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
-
顺序结构是最简单的算法结构
-
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构
选择结构
-
if选择结构
-
单选择
if(布尔表达式){
//如果布尔表达式为true将执行
}
-
双选择
if(布尔表达式){
//如果布尔表达式为true
}else{
//如果布尔表达式为false
}
-
多选择
if(布尔表达式 1){
//如果布尔表达式 1为true
}else if(布尔表达式 2){
//如果布尔表达式 2为true
}else if(布尔表达式 3){
//如果布尔表达式 3为true
}else{
//如果以上布尔表达式都为false
}
-
嵌套
if(布尔表达式 1){
//如果布尔表达式 1为true
if(布尔表达式 2){
//如果布尔表达式 2 的值为true
}
}
-
-
switch多选择结构
switch(expression){
case value1:
//语句1
break; //可选
case value2:
//语句2
break; //可选
default: //可选
//语句
}
循环结构
-
While循环
-
While
while(表达式){
//循环内容
}
- 只要表达式为true,循环能一直跑下去
-
DoWhile
do{
//循环内容
}whiel(布尔表达式)
- dowhile是先执行后判断
- dowhile保证循环体至少会执行一次
-
-
For
for(初始化;布尔表达式;更新){
//代码语句
}
快捷操作
比如进行一百次循环,可以输入100.for自动生成
练习
- 计算0到100间奇数和偶数的和
- 用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
- 打印九九乘法表
答案
public static void main(String[] args) {
int oddSum =0;
int evenSum =0;
for (int i = 1; i <= 100; i++) {
if(i%2==0){
evenSum+=i;
}else{
oddSum+=i;
}
}
System.out.println("奇数的和"+evenSum);
System.out.println("偶数的和"+oddSum);
}
```java
public static void main(String[] args) {
//for循环
for (int i = 1; i <= 1000; i++) {
if (i%5==0)
System.out.print(i+"\t");
if(i%15==0)
System.out.println();
//System.out.print("\n");
}
System.out.println();
//while循环
int i=1;
while (i<=1000)
{
if (i%5==0)
System.out.print(i+"\t");
if(i%15==0)
System.out.println();
i++;
}
}
```
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+"="+j*i+"\t");
}
System.out.println();
}
}
增强for循环
Java5引入了一种主要用于数组或集合的增强型for循环
for(声明句子:表达式)
{
//代码
}
声明的新局部变量的类型必须和数组元素类型相匹配,其作用域限定在循环体内,其值与此时数组元素的值相等
-
break
用于跳出循环
-
continue
终止这次循环,进行下次循环
-
goto关键字
Java中没有goto,但是在break和continue中可以带标签laberl:来实现goto
练习
打印一个五行的三角形
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j=1;j<=5-i;j++)
{
System.out.print(" ");
}
for (int j = 1; j <=(2*i-1); j++)
{
System.out.print("*");
}
System.out.println("");
}
}