Java流程控制
Java流程控制
Scanner对象
-
之前我们学的基本语法中我们并没有实现程序与人的交互,但是java给我们提供了这样一个工具类,我们可以获取用户的输入。
-
java.util.Scanner
-
-
Scanner是java5的新特征,我们可以通过Scanner类来获取用户的输入。
-
基本语法
-
Scanner s = new Scanner(Sysem.in);
-
-
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取我们一般需要使用的hasNext()与hasNextLine()判断是否还有输入的数据。
- next():
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空包,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
- nextLine():
- 以回车(Enter)作为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
- 可以获得空格(空白字符)
- next():
顺序结构
-
Java的基本结构局势顺序结构,除非特别指明,否则就按照顺序一句一句执行。
-
顺序结构是最简单的算法结构
-
-
语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个一次执行的处理步骤组成的,它是任何一个算法都不能离开的一种基本算法结构。
结构(重点)
-
if单选择结构
-
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示
-
-
语法:
-
if(布尔表达式){ //如果布尔表达式为true将执行的语句 }
-
-
-
if双选择结构
-
if(xxxxx条件1){ //满足条件14执行的程序语句 }else{ //不满足条件1的话执行的程序 }
-
-
-
if多选择结构
-
-
/* if 语句之多有1个else语句,else语句在所有的else if语句之后 if语句可以有若干个else if语句,它们必须在else语句之前 一旦其中一个else if语句检测到条件为true,其他else if以及else语句豆浆跳过执行 */
-
-
嵌套的if结构
-
switch多选择结构
-
-
在每一个case匹配对象之后,必须加上break中断,否则的话在匹配中case结果会穿透没有break之后的所有选项并且全部输出。
-
循环结构
-
while循环
-
do...while循环
-
for循环
-
java5 中引入了一种主要用于数组的增强型for循环
-
public static void main(String[] args) { int[] numbers = {10,20,30,40,50}; //定义了一个数组 for(int i = 0;i<5;i++){ System.out.println(numbers[i]); }//这里是传统的for循环 System.out.println("-----------------------------------------------"); //遍历数组的元素 for(int x: numbers){ System.out.println(x); }//这里是增强版的for循环 }
-
break和continue
-
-
public static void main(String[] args) { int i = 0; while(i<100){ i++; System.out.println(i); if(i==30){ break;// break用调出循环,爷不玩了,不干了 } } System.out.println(i);// 但是break不是终止程序,只是跳出了上面的while循环,这个输出是照常执行的 }
-
-
goto
-
goto是指的是给循环体打上一个标签,如果不满足if中间的布尔值判断,我们可以指定跳转到循环体的开始部分
-
public static void main(String[] args) { //打印101-150之间所有的质数 //质数是指在大于1的自然数中,除了1和它本身意外不再有其他因数的自然数 int count= 0; // 不建议使用 outer:for(int i = 101;i < 150;i++){ for (int j = 2;j<i/2;j++){ if(i%j==0){ continue outer; } } System.out.print(i+" "); }
}
-
-