0
Enhanced For Loop - Geometry Code (Practice)
Your company is writing a program for a geometry course. The program takes the number of squares as the first input, creates an array, and then takes the sides of squares as its elements. Write the part of the program that receives a list of square sides and prints the area of those squares for the user. Sample Input 2 3 4 Output 9 16 2 squares (the first input) and their sides accordingly - 3 and 4 (the second and the third inputs). The area of the first square is 9 (3*3), the second one 16 (4*4).
8 Réponses
+ 5
Chin Eu
[Part - 1]
"My answer is just for learning purpose".
There is no doubt you have completed your task but that's not actual Enhanced For Loop because there is no values in array. We have just initialised array of size "length" then storing values in array.
So if you want to follow "Enhanced For Loop" then code should look like this:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int length = scanner.nextInt();
int[] sides = new int[length];
for (int i = 0; i < length; i++) {
sides[i] = scanner.nextInt();
}
//your code goes here
for (int j : sides) {
System.out.println(j * j);
}
}
}
.................. continue................
+ 4
You haven't initialized the value of s and also you have to print the output every time when you inserted the value in s.It would be something like this:
https://code.sololearn.com/cfHu4RlfagN3/?ref=app
+ 3
You have to declare each new variable
+ 3
for( int i : sides )
Means for each int (represented by variable <i>) in collection <sides>.
Here, <i> represents an int (element value) in a collection, it does not represent index of element. So for a collection containing { 5, 4, 3, 2, 1 }, value of <i> will be 5, 4, 3, 2, 1 (elements' values) in each loop round, instead of 0, 1, 2, 3, 4 (elements' index).
A regular for-loop is preferable over enhanced for-loop when we need to assign value for elements in a collection.
for( int i = 0, val = 0; i < length; i++ )
{
val = scanner.nextInt();
sides[ i ] = val * val;
System.out.println( sides[ i ] );
}
+ 2
My code as below:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int length = scanner.nextInt();
int[] sides = new int[length];
for (int i: sides) {
sides[i] = scanner.nextInt();
s = sides[i] * sides[i];
}
//your code goes here
System.out.println(s);
}
}
But it says can’t find symbol. Please help.
+ 2
Thanks The future is now thanks to science[LESS ACTIVE] and JaScript !
+ 2
Chin Eu
[Part - 2]
But if you are taking input inside for loop and printing values in same loop then doens't make sense to store values in array. You can directly do like this:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int length = scanner.nextInt();
// int[] sides = new int[length];
for (int i = 0; i < length; I++) {
int s = scanner.nextInt();
System.out.println(s * s);
}
}
}