一.用户交互Scanner
public class ScannerDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容");
if (scanner.hasNext()){
String str = scanner.next();
System.out.println("您输入的字符串是:"+str);
}
/*
总结:
Scanner对象的三个方法
1.hasNext:判断用户是否输入了信息
2.next(获取输入的数据):
1)一定要读取到有效字符后才可以结束输入
2)对输入有效字符串之前的空格,next会自动将其去掉(如 hello World hello前面的空格)
3)只有输入有效字符串后,才会将有效字符串之前的空格作为结束符(如World之前的空格)
4)next不能得到带有空格的字符串
3.nextline(获取输入的数据)
1)以enter作为结束符,也就说nextline会获得enter之前的所有字符串
2)可以获得空白
4.除此之外Scanner还有hasint hasByte等方法用于判断输入的内容是否为指定数据类型,也有nextInt nextByte等方法用于接收输入的相应的数据类型
*/
}
}
Scanner简单练习
public class ScannerDemod01 {
public static void main(String[] args) {
//输入n个随机数 并求其和 平均值 输入一个数字以回车确认
// 通过输入非数字来结束输入并输出执行结果
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数字");
//定义和变量
double sum=0 ;
//定义输入的次数
int t=0 ;
//定义平均值变量
double average=0 ;
//while循环的终止条件是不满足条件时跳出循环,满足条件时就继续循环
while (scanner.hasNextDouble()){
double i = scanner.nextDouble();
t+=1 ;
sum+=i ;
average=sum/t ;
}
System.out.println("您输入的和为:"+sum);
System.out.println("您输入的平均数为:"+average);
scanner.close();
}
}
二.顺序结构
顺序结构就是程序从上到下依次执行.
三.选择结构
1.if单选结构
if(){}结构
2.if双选结构
if(){}else{}
3.if多选结构
if(){}else if(){}else if(){}
4.嵌套的if结构
if(){if(){}}
5.Switch多选择结构
1) Switch可以支持的变量类型为byte short int char java7以后支持String类型
2) case值必须为字符串常量或者字面量
3)case穿透:当满足条件的case没有break时就不会跳出而是会执行下一个case,没有break时就会不会跳出Switch而是继续执行
4)反编译:Idea支持:
此位置为java文件所生成的class文件保存地址, 将该文件复制到项目中就可以查看IDEA编译之后的class文件
四.循环结构
1.while:只有当条件不满足时才会跳出循环,否则就会一直循环执行
2.do{循环体} while{条件语句}:该循环语句至少执行一次
3.for(1;2;3){循环体}
for循环执行流程:
1)初始化变量1;
2)判断初始化值是否满足判断条件2;
3)执行循环体;
4)执行3(i++)操作
4.foreach:foreach(int i :num){}
五.综合练习
1.计算0-100之间的奇数和偶数和
public class Sum {
public static void main(String[] args) {
//计算1-100之间奇数和偶数和
int odd = 0 ;
int ou = 0;
for (int i=1;i<=100;i++){
if ((i%2)!=0){
odd+=i ;
}else{
ou+=i ;
}
}
System.out.println("奇数和:"+odd);
System.out.println("偶数和为:"+ou);
}
}
2.计算1-1000之间能整除5的数且每三个一行
public class Demo01 {
public static void main(String[] args) {
//用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
int i = 0 ;
while( ++i<=1000){
if ((i%5) == 0){
//此处为不换行
System.out.print(i+"\t");
/*
1.进入第一个if的i是所有能整除5的数字,因此在这个范围内再进行第二个条件筛选
2.根据规律可知只有第三个数满足能能整出15,因此在能整除5的所有数中挑选出能
整除15的换行即可
*/
if (i%15 == 0){
System.out.println();
}
}
}
}
}
3.打印99乘法表
public class Demo02 {
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();
}
/*
总结:
1.打印多行多列的数据使用双层for循环,其中外层for循环控制行数,内层for循环控制列数
2.它是在每行上控制列数,且每行的列数小于等于行数.
3.在外层循环(行上换行控制行数)在内层循环(列上不换行使用转义字符控制列数)
4.外层循环一次内层循环n次
*/
}
}
五.Break&Continue
1.在任何循环语句中均可使用break强制终止循环语句,且不执行后面的语句
2.continue在循环体中,用于结束某次循环,即跳过循环体中尚未执行的语句,接着进行下一次是否循环的判定