JAVA流程控制模块
scanner对象
基本要素:1.创键盘输入new scanner 2.数据接收scanner.nextLine(); 3.关闭scanner.close();
public static void main(String[] args) {
//从键盘输入数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入文字:")
String str =scanner.nextLine();//程序卡在这里等待用户输入回车后才会继续执行
System.out.println("用户输入了"+str);
//属于IO流的类如果不关闭会一直占用资源,用完要关掉
scanner.close();
}
scanner.hasNextLine() scanner.nextLine() 。 以Enter符为结束符,可字符串
scanner.hasNext() scanner.next()。比如:Holle world! 只能录入Holle,空格后的不录入
试炼 循环输入直到判断输入的是整数程序结束
package com.tao.scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
int i;
float j;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数");
while (scanner.hasNextInt()){
if (scanner.hasNextFloat()==false) {
j = scanner.nextFloat();//拿到这个输入的值并赋值给j
System.out.println("你输入的是小数" + j);
System.out.println("请正确输入一个整数:");
}
}
i=scanner.nextInt();
System.out.println("恭喜你成功输入整数" + i);
scanner.close();
}
}
多次输入,记录输入个数和平均值
package com.tao.scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int m=0;
double num =0;
System.out.println("请输入数据");
while (scanner.hasNextDouble()){
double u = scanner.nextDouble();
num+=u;
m++;
System.out.println("你输入了"+m+"个数字"+m+"个数字的平均值是"+num/m);
}
System.out.println("你输入了"+m+"个数字");
System.out.println(m+"个数字的平均值是"+num/m);
scanner.close();
}
}
反编译
java—class(字节码文件)-----反编译(IDEA)
找出project compile output路径,找到编译文件.class,在IDEA中项目在文件管理器打开(explorer),.class复制到到这个项目文件夹中打开即可
if 语句
双选择结构
if(boolean布尔表达式){
}else{
}
多选择结构
if(boolean布尔表达式){
}else if(布尔表达式){
}else if(布尔表达式){
}else{
}
switch多选择结构
switch(expression){
case value: //case标签必须为字符串常量或字面量 1234abcd
break; //跳出switch,没有break,case发生穿透(把下一个case也执行,下一个是default也会被穿透)
case value:
break;
default: //其他类型就执行这个
}
循环结构
while(先判断后执行)
while(布尔表达式){
}
多数情况下需要让表达式失效的方法结束循环
int i=0;
while(i<100){
i++
System.out.println("i");
}
while(true){ //死循环
}
do while(先执行后判断)
至少执行一次
for循环
for (int i = 1; i <100 ; i++)
100.for 快捷键
1~100 奇数和,偶数和
public class demo04 {
public static void main(String[] args) {
int oddSum= 0;
int evenSum=0;
for (int i = 0; i <= 100; i++) {
if(i%2==1){
oddSum+=i;
}else
{
evenSum=evenSum+i;
}
}
System.out.println("奇数和"+oddSum+"偶数和"+evenSum);
}
}
输出1~1000被5整除的数,每5个一行
package com.tao.scanner;
public class demo04 {
public static void main(String[] args) {
int m=0;
for (int i = 0; i < 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
if(i%(5*5)==0){
// System.out.println();
System.out.print("\n");
}
}
}
}
}
9*9乘法表
package com.tao.struct;
public class demo01 {
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();
}
}
}
break和continue都用于循环语句
break直接跳出循环体
continue不跳出循环体,只是跳出了本次循环开始下一次循环
循环输出等腰三角形:for循环的循环次数是在执行前就确定的,重点是判断出嵌套的for循环到底循环了几次.
package com.tao.struct;
public class Demo03 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >=i; j--) { //i=1时,j的初始值为5,j要减到判断语句j>=1不成立需要减5次,既j为0 j>=1才不成立,循环了五次
//i=2时,j要减到1,j>=2才不成立,减4次,循环了四次
//i=5时,j要减到4,j>=5才不成立,减1次,循环了一次
System.out.print(" ");
}
for (int k = 1; k <= i; k++) { //i=1时循环了1次
System.out.print("*");
}
for (int l = 2; l <= i; l++) { //i=1时直接不成立,0次循环
//i=5时,l<=5,l加到6判断才不成立,从2加到6,加4次,循环了4次
System.out.print("*");
}
System.out.println(); //换行
}
}
}