2014-09-12 2 views
0

Я очень новичок в программировании и имеет много проблем с моим кодом. У меня есть два основных вопроса, которые я действительно не мог найти. Я пытаюсь иметь equalsignorecasemethod.It должен вычислить область различных объектов. Также я не знаю, где взять мой in.close();Поиск области круга, треугольника и прямоугольника с помощью сканера

import java.util.Scanner; 
class Area { 
public static void main(String[] args) { 

String str1 = "C"; 
String str2 = "c"; 
boolean help; 

help = str1.equals(str2); 


Scanner scan = new Scanner(System.in); 
System.out.println("Hello what is your name"); 
String name = scan.next(); 
System.out.println("welcome" + name); 

System.out.println("Enter c=circle t+triangle r+rectangle q=quit"); 
String response = scan.next(); 

if (response.equals("c")) 
{ 
System.out.println("you entered the letter c"); 
System.out.println("what is the radius?"); 
float radius = scan.nextFloat(); 
float pi = (float) 3.14f; 
System.out.print("the calculated area of the shape is "); 
System.out.println(radius* pi* radius); 
} 
else 
{ 
if (response.equals("t")) 
{ 
System.out.println("you entered the letter t"); 
System.out.println("what is your base?"); 
float base = scan.nextFloat(); 
System.out.println("what is your height"); 
float height = scan.nextFloat(); 
System.out.print("the calculated area of the shape is "); 
System.out.println(base * height /2); 




    } 
    else 
    { 
    if (response.equals("r")) 
    { 
    System.out.println("You entered the letter r"); 
    System.out.println("what is your base?"); 
    float base = scan.nextFloat(); 
    System.out.println("what is your height?"); 
    float height = scan.nextFloat(); 
    System.out.print("the calculated area of the shape is "); 
    System.out.println(base * height); 
    } 
    else 
    System.out.println("you have quit"); 


} 
}}} 
+0

Пожалуйста, добавьте тег [Java], чтобы мы могли выделить синтаксис Highlight. Кроме того, вы улучшите изменения, которые кто-то смотрит на ваш вопрос. –

ответ

0

Во-первых, вы можете использовать метод String.equalsIgnoreCase(String s) для сравнения двух строк независимо от случая. Например здесь:

String str1 = "C"; 
String str2 = "c"; 
boolean help = str1.equalsIgnoreCase(str2); 

Значение help будет true.

Кроме того, чтобы избежать много вложенных if... else структур, вы можете использовать одну if... else if... else структуру, как это:

if (response.equalsIgnoreCase("c")) { 
    // Circle 
} 
else if (response.equalsIgnoreCase("t")) { 
    // Triangle 
} 
else if (response.equalsIgnoreCase("r")) { 
    // Rectangle 
} 
else { 
    // Quit 
} 

Наконец, вы можете закрыть сканер в конце метода main, после того, как the if... else s:

Смежные вопросы