1、控制台输入
Scanner sc= new Scanner(System.in);
System.out.println("请输入三个int型的数:");
int num1 = sc.nextInt();
int num2 = sc.nextInt();
int num3 = sc.nextInt();
int r = num1 > num2 ? num1:num2;
r = r > num3 ? r: num3;
System.out.println(r);
2、语句种类
(1)赋值语句:x=9;
(2) 方法调用语句: SyStem.out.print(“hello”);
Math.max(10,11);
(3)import 和 package 语句
import:
作用:导入类
格式:inport java.util.*; import java.util.Scanner;
位置:class上面,package下面
数量:多个
package:
作用:管理类
格式:package cn.tedu.demo;
位置:第一条有效语句
数量:至多一条
(4) 判断语句: if,switch
if语句:
if(boolean){}
if(boolean){} else{}
if(boolean){}
if(boolean){}……
if(boolean){}
else if(boolean){}
……
else{}
switch语句:
switch(){} (byte,short,int,char,String,Enum枚举 固定范围内的值)
case n:(n与括号中的数据类型匹配)
语句;
break(可有可无,如果有break就跳出语句体,如果没有break继续向下执行,与n无关)
……
default:
语句;
(5) 循环语句:for,while,do-while
for语句:
for(表达式1;表达式2;表达式3){
语句体;
}
循环原理:
表达式1完成初始化,表达式2判断条件,如果为true,执行语句体;
表达式3(自增自减)步长表达式;执行表达式2,直到判断条件为false,跳出循环体
例如:
int sum=0;
for (int i=1;i<=10;i++){
sum+=i;
}
System.out.println(sum);
while语句:
while(boolean){
循环体;
}
int sum=0;
int i=1;
while(i<10){
sum+=i;
i++
}
do-while语句:
do{
循环体;
}while(boolean);
int sum=0;
int i=1;
do{
sum+=i;
i++;
}while(i<10);
嵌套循环:
for(int i=1;i<=10;i++){
while(){
for(){}
}
}
例如:
for(int i=1;i<=10;i++){
for(int i=1;j<=5;j++) {
System.out.print("hello");
}
}
嵌套循环原理:
外层执行一次,内层执行全部
内层循环的是行,外层循环的是列
例如:
横六纵五:
public static void test1() {
for(int i = 0;i<=5;i++) {
for(int j=1;j<=6;j++) {
System.out.print("*");
}
System.out.println();
}
}
依次递增:
public static void test2() {
for(int i=0;i<=5;i++) {
for(int j=1;j<=i;j++) {
System.out.print("*");
}
System.out.println();
}
}
九九乘法表:
public static void test3() {
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
(6) 跳转语句:break,continue
break:
可以用于switch和循环体中
表示跳出循环体和switch语句体
break语句后的代码永远不能执行
例如:
void f(){
int x=5;
if(x==5){
break;
}
}
continue:
可以用于循环体中
表示结束本次循环,开始新一次循环
语句体的代码永远不能执行
例如:
for(int i=1;i<=10;i++){
if(i%2==0){
continue;
System.out.println(“hello”);
}
System.out.println(i);
}
标号语句:
out:for(int i=1;i<=5;i++) {
for(int j=1;j<=4;j++) {
if(j==2) {
//跳出循环
break out;
}
System.out.print(j+"\t");
}
System.out.println();
}
3、经典案例
1、输出2-1000,所有的质数(素数)
public static void test1() {
for(int i=2;i<=1000;i++) {
int flag=0;
for(int j=2;j<i;j++) {
if(i%j==0) {
flag=1;
break;
}
}
if(flag!=1) {
System.out.println(i);
}
}
}
2、求4的阶乘和4!+3!+2!+1
public static void test2() {
int sum = 0;
for(int i=4;i>=1;i--) {
int r=1;
for(int j=i;j>=1;j--) {
r*=j;
}
sum+=r;
}
System.out.println("4!+3!+2!+1="+sum);
}
3、百钱百鸡,3文钱1只公鸡,2文钱一只母鸡,1文钱3只小鸡,一百文钱如何正好买一百只鸡
public static void test3() {
for(int i=1;i<=33;i++) {
for(int j=1;j<=50;j++) {
int x=100-i-j;
if(x%3==0&&3*i+2*j+x*1/3==100) {
System.out.println("公鸡:"+i+",母鸡:"+j+"小鸡:"+x);
}
}
}
}
4、控制台输入年和月,输出该年该月有多少天
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个年份:");
int year = sc.nextInt();
System.out.println("请输入一个月份:");
int month = sc.nextInt();
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
System.out.println(year+"年"+month+"月共有"+"31天");
}
if(month==4||month==6||month==9||month==11) {
System.out.println(year+"年"+month+"月共有"+"30天");
}
if(month==2) {
if((year%4==0&&year%100!=0||year%400==0)) {
System.out.println(year+"年"+month+"月共有29天");
}else {
System.out.println(year+"年"+month+"月共有28天");
}
}
5、输入一个数字,输出这个数字是几位数
public static void test3() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int i = sc.nextInt();
int sum=1;
while(i>=10) {
i=i/10;
sum++;
}
System.out.println(sum);
}
6、输入一个数字,输出这个数字的所有因数
public static void test4(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int i=sc.nextInt();
int j=0;
do {
j++;
if(i%j==0) {
System.out.println(j);
}
}while(i>=j);
}