Java流程控制
1.scanner
next();
-
一定要读取到有效字符后才可以结束输入。
-
对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
-
只有输入有效字符后才将其后面的空白作为分隔符或者结束符。
-
next()不能得到带有空格的字符串。
Hello World ---> Hello
nextLine();
-
以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
-
可以获得空白。
Hello World ---> Hello World
hasNext();
案例
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束并输出执行结果。
Scanner scanner = new Scanner(System.in);
double sum=0;//总和
int a=0; //计数器
while(scanner.hasNextDouble()){
double x = scanner.nextDouble();
a++;
//a=a+1;----> a+=1;---->>> a++;
sum+=x;
}
System.out.println("总和是:"+sum);
System.out.println("平均数是:"+(sum/a));
scanner.close();
注意事项
scanner.close();//凡是属于io流的类,用完关闭节省资源.
2.选择结构
-
if单选择结构
-
if双选择结构
-
if多选择结构
-
if嵌套结构
-
switch多选择结构
switch语句的变量类型可以是:
-
byte、short、int或者char。
-
从javase7开始
-
switch支持字符串String类型了
-
同时case标签必须为字符串常量或字面量。
注意case穿透,最好每一个case后面都写break
-
-
3.循环结构
while循环
略
do...while循环
-
do...while和while相似,不同的是do...while至少会执行一次。
-
对于do...while语句而言,如果不满足条件,则不能进入循环。但有时候我们却需要即使不满足条件,也至少执行一次。
-
while和do...while的区别:
-
do...while先执行后判断,while是先判断后执行。
-
do...while总是会保证循环体被至少执行一次,这是他们的主要差别。
do{
//代码语句
}while(布尔表达式);
for循环
在java5中引进了一种主要用于数组的增强型for循环。
for( ; ; ){
}//死循环
练习
//用for循环和while循环输出1-1000能被5整除的数,并且每行输出3个。
public class ForDemo02 {
public static void main(String[] args) {
for (int i = 0; i <=1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
System.out.println();
}
}
}
}
//打印九九乘法表
public class ForDemo03 {
public static void main(String[] args) {
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循环
public class ForDemo05 {
public static void main(String[] args) {
int[] numbers={10,20,30,40};
//遍历数组的元素
for (int i = 0; i <numbers.length; i++) {
System.out.println(numbers[i]);
}
//增强for循环
for(int x : numbers){
System.out.println(x);
}
}
}
break、continue
-
break主要用于循环和switch中,强制终止循环,不执行循环剩余的语句,不退出程序。
-
continue用于循环中,用于终止某次循环,跳过循环中尚未执行的语句,接着下一次循环。
练习小结
//打印三角形
public class TestDemo {
public static void main(String[] args) {
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号