顺序判断多个条件,只要执行了其中1个分支,就跳出if语句
if(条件1){ //如果符合条件1,则执行条件1,然后跳出整个if语句 }else if(条件2){ //如果符合条件2,则执行条件2,然后跳出整个if语句 }else{ //如果条件1/2都不符合,则执行else里的语句 }练习:符号函数 要求,输入一个整数,如果输入正数,返回1; 如果输入负数,返回-1; 如果输入0,返回0;
public static void main(String[] args){ System.out.println("请输入整数:"); int a = new Scanner(System.in).nextInt(); int r = f(a); System.out.println(r); } static int f(int x){ if(x>0){ return 1; }else if(x<0){ return -1; }else{ return 0; } }练习:求阶乘、约数、π
<EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" /> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="doClick" android:text="阶乘"/> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="doClick" android:text="约数"/> <Button android:id="@+id/button3" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="doClick" android:text="π"/> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView"/> public class MainActivity extends Activity { EditText editText; TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //类中定义的变量称为成员变量 editText = (EditText)findViewById(R.id.editText); textView = (TextView)findViewById(R.id.textView); } public void doClick(View view) { switch (view.getId()){ case R.id.button1: f1(); break; case R.id.button2: f2(); break; case R.id.button3: f3(); break; } } /** * 阶乘 * */ public void f1(){ int a = Integer.valueOf(editText.getText().toString()); int result = a; for(int i = a-1;i>=1;i--){ result = result*i; } textView.setText(result+""); } /** * 约数 * */ public void f2(){ int a = Integer.valueOf(editText.getText().toString()); textView.setText(""); for(int i = 1;i<=a;i++){ if(a%i==0){ textView.append(i+"\n"); } } } /** * π * */ public void f3(){ int n = Integer.valueOf(editText.getText().toString()); double sum = 0; //a、b是分子、分母,i控制累加次数 for(int a=1,b=1,i=0;i<n; a*=-1,b+=2,i++){ sum+=a/(double)b; } double pi = sum * 4; textView.setText(pi+""); } }附录:
练习:循环嵌套 输出
public static void main(String[] args) { for(int i=0;i<5;i++){ for(int j=0;j<=i;j++){ System.out.print("*"); } System.out.println(""); } } public static void main(String[] args) { for(int i=1;i<=5;i++){ for(int j=0;j<5-i;j++){ System.out.print(" "); } for(int j=0;j<2*i-1;j++){ System.out.print("*"); } System.out.println(""); } }练习:百元买百只鸡 公鸡5元1只 母鸡3元1只 小鸡1元3只 用100元恰好买100只鸡的组合
public static void main(String[] args) { System.out.println("公鸡5元1只"); System.out.println("母鸡3元1只"); System.out.println("小鸡1元3只"); //能买i只公鸡 for(int i=0;i<20;i++){ //买完公鸡剩余钱 int money = (100 - 5*i); //买j只母鸡 for(int j=0;j<money/3;j++){ //买k只小鸡 int k = (money-3*j)*3; if(i+j+k == 100){ System.out.println("花完100元买100只鸡,要买"+i+"只公鸡,"+j+"只母鸡,"+k+"只小鸡"); } } } }中断循环(跳出循环)
练习:产生>0.999的随机浮点数
public static void main(String[] args) { //产生[0,1)的随机浮点数 /*double d = Math.random(); System.out.println(d);*/ //需要打印出>0.999的浮点数 for(int i=0;;i++){ double d = Math.random(); if(d > 0.999){ System.out.println("第"+i+"次"+d); break; } } }继续下一轮循环
练习:输入整数n,求n内质数数量
public static void main(String[] args) { System.out.println("输入整数n,求n内质数数量"); int n = new Scanner(System.in).nextInt(); int r = f(n); System.out.println(r); } static int f(int n){ //count为记数,假设2是已知质数,count默认为1 int count = 1; outer: for(int i=3;i<=n;i++){ //最多除到i的开方,为避免开放后漏除,所以开方后+1 //至于为什么可以打电话问问你们的小学体育老师,看看他是怎么教你数学的... double max = Math.sqrt(i)+1; for(int j=2;j<max;j++){ //i能被j整除 if(i%j==0){ //直接跳出最外层循环 continue outer; } } count++; } return count; }