java.util.Scanccer:通过Scanner获取用户的输入。
基本语法:Scanner s = new Scanner(System.in);
通过Scanner类的next()和nextLine()方法获取输入的字符串,
在读取前一般需要用haNext()和hasNextLine()判断是否还有输入的数据。
next:
一定读到有效字符
有效字符前空白无效
有效字符后空白作为分隔符或者结束符
next()不能得到带空格的字符串
package com.scanner;
?
import java.util.Scanner;
?
public class Demo01 {
?
public static void main(String[] args) {
?
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
?
System.out.println("使用next方式接收:");
?
//判断用户有没有字符串输入
if(scanner.hasNext()){
String str = scanner.next();//程序会等待用户输入完毕
System.out.println("输出的内容为:"+str);
}
//IO流的类即使关闭,否则会一直占用资源
scanner.close();
}
}
nextLine:
以Enter为结束符
nextLine()方法返回的是输入回车键前的所有字符
可以获得空白
package com.scanner;
?
import java.util.Scanner;
?
public class Demo02 {
?
public static void main(String[] args) {
?
Scanner scanner = new Scanner(System.in);
?
System.out.println("使用nextLine方式接收:");
?
if(scanner.hasNextLine()){
//
String str = scanner.nextLine();
System.out.println("输出的内容为"+str);
?
}
scanner.close();
}
}
//assignment: 输入多个数字,并求其和和平均值,每输入一个数字用回车确认,输入非数字结算书输入并输出执行结果
?
public class Base2self3 {
public static void main(String[] args) {
//定义循环次数、和
int m = 0;
double sum = 0;
//创建scanner
System.out.println("输入数据");
Scanner scanner = new Scanner(System.in);
//循环语句:通过循环判断是否还有输入,并在里面对每一次进行统计
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m = m + 1;
sum = sum + x;
System.out.println("第"+m+"次"+",当前和:"+sum+",当前平均值:"+ sum / m);
}
System.out.println("第"+m+"次结束");
System.out.println("总和为"+sum);
System.out.println("平均值为"+ sum / m);
?
scanner.close();
}
}
Java最基本结构
最简单算法结构
从上到下一次运行
有else if 必须有else作为结束
判断是否可行,然后再执行
语法:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
判断是否可行,两个判断结果
语法:
if(布尔表达式){
//布尔表达式true将执行的语句
}else{
//布尔表达式false将执行的语句
}
语法:
if(布尔表达式1){
//布尔表达式1为true时执行操作
}else if(布尔表达式2){
//布尔表达式2为true时执行操作
}else if(布尔表达式3){
//布尔表达式3为true时执行操作
}else{
//上述布尔表达式为false时执行操作
}
试验
package com.struct;
?
import java.util.Scanner;
?
//if多选择结构
public class Demo04 {
public static void main(String[] args) {
?
System.out.println("谁创造了人类?");
?
Scanner scanner = new Scanner(System.in);
?
while (scanner.hasNextLine()) {
?
String x = scanner.nextLine();
?
if (x.equals("女娲")) {
System.out.println("不大行");
} else if ((x.equals("普罗米修斯")) || (x.equals("Prometheus"))) {
System.out.println("也不大行");
} else if ((x.equals("亚当和夏娃")) || (x.equals("Adam and Eve"))) {
System.out.println("还不大行");
} else if (x.equals("道")) {
System.out.println("接近真理");
} else if ((x.equals("上帝")) || (x.equals("God")) || (x.equals("god"))) {
System.out.println("放屁");
} else if ((x.equals("劳动")) || (x.equals("labor"))) {
System.out.println("放臭屁");
} else if (x.equals("自然") || x.equals("大自然") || x.equals("nature") || x.equals("自然界")) {
System.out.println("正确");
} else {
System.out.println("我觉得这不大行");
}
}
scanner.close();
}
}
//if多选择结构
public class Demo05 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的成绩 (输入非数字结束运行)");
?
while (scanner.hasNextInt()) {
int x = scanner.nextInt();
if (x == 100) {
System.out.println("S 恭喜你满分");
} else if (x < 100 && x >= 90) {
System.out.println("A 非常好,向满分发起进攻");
} else if (x < 90 && x >= 80) {
System.out.println("B 努力呀,争取变得更好");
} else if (x < 80 && x >= 70) {
System.out.println("C 一般般,要努力了");
} else if (x < 70 && x >= 60) {
System.out.println("D 考的啥玩意儿,你也想整花活吗");
} else if (x > 100) {
System.out.println("SB 滚蛋 瞎jb输入的莫得蛋蛋");
} else if (x < 0) {
System.out.println("DSB 不错不错 你还能更低 ");
} else {
System.out.println("hxd 咱没及格呀,不如找个场子上班吧");
}
}
System.out.println("祝你好运");
scanner.close();
}
}
语法:
if(布尔表达式1){ //布尔表达式1true执行代码 if(布尔表达式2){ //布尔表达式2true执行代码 } }
限制:byte\short\int\char\String
语法:
switch(expression){ case value: //语句 break;//可选 case value: //语句 break;//可选 //……任意数量的case语句 default://可选 //语句 }
示例:
package com.struct;
?
import java.util.Scanner;
?
//switch介绍
public class Demo06 {
public static void main(String[] args) {
//case穿透:无break不会停
//switch 匹配一个具体的值
/*JDK7新特性:switch表达式结果可以是String类型
字符本质还是数字
反编译:方法:hashCode
*/
System.out.println("请输入你的等级");
Scanner scanner = new Scanner(System.in);
?
char grade = scanner.next().charAt(0);
?
switch (grade){
case ‘A‘:
System.out.println("优秀");
break;
case ‘B‘:
System.out.println("良好");
break;
case ‘C‘:
System.out.println("一般");
break;
case ‘D‘:
System.out.println("及格");
break;
case ‘E‘:
System.out.println("及格");
break;
default:
System.out.println("错误");
}
}
}
语法:
while(布尔表达式){
//循环内容
}
只要布尔表达式为true,循环将一直执行
大多数情况要循环停止,需要一个让表达式失效的方式
少部分情况需要死循环
while:先判断后执行
示例:
package com.struct;
//while 循环
//题目:计算:1+2+...+100
public class Demo07 {
public static void main(String[] args) {
?
int i = 0;
int sum = 0;
?
while (i<100){
System.out.println("——————————————————————————");
i++;
sum = sum + i;
System.out.println("now i = "+i);
System.out.println("now sum = "+sum);
}
System.out.println("=======================");
System.out.println("total "+i+" times");
System.out.println("1+2+...+100 = "+sum);
}
}
//5050
对即使不满足条件的语句也至少执行一次
do…while:先执行后判断
语法:
do{
//代码语句
}while(布尔表达式);
示例:
package com.struct;
//do...while 循环
public class Demo08 {
public static void main(String[] args) {
?
int i = 0;
int sum = 0;
?
do{
System.out.println("——————————————————————————");
sum = sum + i;
i++;
System.out.println("now i = "+i);
System.out.println("now sum = "+sum);
?
}while(i<=100);
?
System.out.println("=======================");
System.out.println("total "+i+" times");
System.out.println("1+2+...+100 = "+sum);
}
}
最重要的循环语句
更简单的循环语句
语法:
for(初始化;布尔表达式;更新){
//代码语句
}
最先执行初始化步骤,可以为空;
然后检测布尔表达式的值,可以为空;
示例:
//for 语句
public class Demo09 {
public static void main(String[] args) {
int i = 1;//初始化条件
int sum = 0;
?
for (i = 1; i<=100; i++){ //快捷键,100.for+Enter
//初始化//条件判断//迭代
sum += i;
System.out.println("—————————————————————");
System.out.println(i);
System.out.println(sum);
}
System.out.println("=======================");
System.out.println("Final result is " + sum);
}
}
练习1.分别计算0~100间奇数/偶数的和
package com.struct;
//练习1.分别计算0~100间奇数/偶数的和
public class Demo11 {
?
public static void main(String[] args) {
?
int oddSum = 0;
int evenSum = 0;
int todd = 1;
int teven = 0;
int t;
?
//自己的操作
for (;todd<=100;todd+=2){
oddSum += todd;
}
?
for (;teven<=100;teven+=2){
evenSum += teven;
}
?
System.out.println("奇数的和为"+oddSum);
System.out.println("偶数的和为"+evenSum);
?
oddSum = 0;
evenSum = 0;
?
System.out.println("————————————————————————");
//最优的操作
for (int i = 0; i <= 100; i++) {
if (i%2 == 0){
evenSum += i;
}else{
oddSum += i;
}
}
System.out.println("·奇数的和为"+oddSum);
System.out.println("·偶数的和为"+evenSum);
}
}
练习2.循环输出1-1000之间能被5整除的数,每行输出3个;
package com.struct;
//练习2.循环输出1-1000之间能被5整除的数,每行输出3个;
public class Demo12 {
public static void main(String[] args) {
?
//for循环:
System.out.println("\n"+"===========================");
System.out.println("for循环结果:");
for (int i = 1; i <= 1000; i++){
if (i%5 == 0){
System.out.print(i+"\t");
}
if (i%(3*5) == 0){
System.out.print("\n");
}
}
?
//while循环:
System.out.println("\n"+"===========================");
System.out.println("while循环结果:");
int m = 0;
while (m <= 1000){
m++;
if (m%5 == 0){
System.out.print(m + "\t");
}
if (m%(3*5) == 0){
System.out.print("\n");
}
}
?
//do while循环:
System.out.println("\n"+"===========================");
System.out.println("do while循环结果:");
?
int n = 0;
?
do {
n++;
if (n%5 == 0){
System.out.print(n + "\t");
}
if (n%(3*5) == 0){
System.out.print("\n");
}
}while (n<1000);
}
}
print():输出完不换行
printLn():输出完换行
练习3.打印9×9乘法表
package com.struct;
//练习3.打印9×9乘法表
//嵌套for循环
public class Demo13 {
public static void main(String[] args) {
?
int x = 1;
int y = 1;
?
System.out.println("九 九 乘 法 表");
System.out.println("——————————————————————————————————————————————");
?
for (; x <= 9; x++){
?
for (y = 1; y <= x; y++){
System.out.print(y + "×" + x + "=" + x*y + "\t");
?
if (y == x){
System.out.println();
}
}
}
}
}
语法:
for(声明语句:表达式)
{
//代码句子
}
用break控制循环的流程:
break用于强行退出循环,不执行循环中剩余的语句
package com.struct;
//break
public class Demo15 {
public static void main(String[] args) {
?
int i = 0;
while (i<100){
i++;
System.out.println(i);
if (i==30){
break;
}
}
System.out.println("stop");
}
}
用于终止某次循环,接着进行下一次循环
package com.struct;
//continue
public class Demo16 {
public static void main(String[] args) {
int i = 0;
while (i<100){
i++;
if (i%10==0){
System.out.println("——————");
continue; //返回至while循环
}
System.out.println(i);
}
}
}
保留字
label:定位
package com.struct;
//练习4:打印101~150间所有质数
public class Demo17 {
public static void main(String[] args) {
?
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.println(i + " ");
}
}
}
综合练习:
package com.struct;
//打印三角形:5行
public class Demo18 {
?
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("*");
}
for (int j = 5; j > i; j--){
System.out.print(" ");
}
?
?
System.out.println();
?
}
}
}
原文:https://www.cnblogs.com/jyttt/p/14408259.html