通过hasNext()
and hasNextLine()
来判断是否有下次的输入,
通过next()
and nextLine()
来获取输入的字符串,next()会把空格当作结束符,所以hello world只能输出hello,空格结束, nextLine()以回车符为结束
new scanner = Scanner(System.in); if(scanner.hasNextLine()){ String str = scanner.nextLine(); System.out.println(str); } scanner.close();
进阶: scanner.hasNextDouble()....
都是顺序结构
选择:
if(){ pass }else if{ pass }else{ pass }
case穿透:后面的都执行, switch主要是判断具体的一个值
switch(){ case xxx: xxx break;//case 穿透,如果不写,后面的每一条代码都会执行 case xxx: xxx; break; default: xxx }
为什么switch支持String?
IDEA支持反编译: 通过工具栏的Project Structure
来找到output文件夹,把class文件复制到项目包目录下,可以打开查看,case后面跟的是hashcode,所以支持。
循环结构
do{ //代码块 }while(布尔值)
for(初始值; 不二判断; 迭代更新){ //代码块 }
在IDEA中输入100.for
自动生成for循环语句,太牛了!!!
增强for循环
for(声明语句: 表达式){ //代码 } //声明语句:声明局部变量,必须与数组或集合的类型一致 //表达式是要访问的数组名,或者是返回值为数组名的方法(python的迭代器) int[] numbers = {1,2,3,4,5}; for (int x: numbers){ System.out.println(x); }
goto 不建议使用
使用方法:在continue或者break后面加上标签,在需要转到的地方前面加上标签:, 就可以直接跳转到添加标签的地方。
//求101-150之间的质数 outer:for(i = 101;i< 150; i ++){ for(j = 2; j< i/2;j++){ if(i%j == 0){ continue outer; } } }
debug,打断点,在console上方有下一步的按钮。great!!